vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 local playerName = nil;
2 local lastMana = nil;
3 local playerClass = nil;
4  
5 function SCT_ManaGain_OnLoad()
6  
7 if ( not SCT_OnLoad ) then
8 SCT_ManaGain_AddMessage("not loaded! Dependancy Scrolling Combat Text not found!");
9 return;
10 end
11  
12 if ( not print ) then print = function(x) ChatFrame1:AddMessage(x); end end
13  
14 SlashCmdList["SCTMANAGAINCOMMAND"] = SCT_ManaGain_SlashHandler;
15 SLASH_SCTMANAGAINCOMMAND1 = "/sctmg";
16 SLASH_SCTMANAGAINCOMMAND2 = "/sctmanagain";
17  
18 this:RegisterEvent("VARIABLES_LOADED")
19  
20 end
21  
22 function SCT_ManaGain_OnEvent()
23  
24 if ( event == "VARIABLES_LOADED" ) then
25 --let's not load if player doesn't have mana
26 playerClass = UnitClass("player");
27  
28 if ( UnitPowerType("player") ~= 0 and playerClass ~= "Druid" ) then return; end
29  
30 this:RegisterEvent("UNIT_MANA");
31  
32 lastMana = UnitMana("player");
33  
34 if ( not SCT_ManaGain_Saved ) then
35 SCT_ManaGain_Saved = {};
36  
37 SCT_ManaGain_AddMessage("loaded -- first use!")
38 end
39  
40 playerName = UnitName("player").." of "..GetCVar("realmName");
41  
42 if ( not SCT_ManaGain_Saved[playerName] ) then
43 SCT_ManaGain_Saved[playerName] = {
44 ["Drink"] = true,
45 ["SpiritTap"] = true,
46 ["Evocation"] = true,
47 };
48  
49 if ( playerClass ~= "Priest" ) then SCT_ManaGain_Saved[playerName].SpiritTap = false; end
50 if ( playerClass ~= "Mage" ) then SCT_ManaGain_Saved[playerName].Evocation = false; end
51  
52 SCT_ManaGain_AddMessage("profile "..playerName.." created!");
53 else
54 if ( SCT_ManaGain_Saved[playerName].Drink == nil ) then SCT_ManaGain_Saved[playerName].Drink = true; end
55 if ( playerClass == "Priest" and SCT_ManaGain_Saved[playerName].SpiritTap == nil ) then SCT_ManaGain_Saved[playerName].SpiritTap = true; end
56 if ( playerClass == "Mage" and SCT_ManaGain_Saved[playerName].Evocation == nil ) then SCT_ManaGain_Saved[playerName].Evocation = true; end
57 SCT_ManaGain_AddMessage(playerName.." profile loaded.");
58 end
59  
60 SCT_ManaGain_ShowStatus();
61 elseif ( event == "UNIT_MANA" ) then
62 if ( arg1 and arg1 == "player" ) then
63 local manaDiff = UnitMana("player") - lastMana;
64  
65 if ( manaDiff > 0 and SCT_ManaGain_GetShow() ) then
66 SCT_Display_Only("SHOWPOWER", "+"..manaDiff.." mana");
67 end
68 lastMana = UnitMana("player");
69 end
70 end
71 end
72  
73 function SCT_ManaGain_GetShow()
74  
75 SCTManaGainTooltip:SetOwner(UIParent, "ANCHOR_NONE");
76  
77 local buffName = "";
78 local i = 1;
79  
80 while UnitBuff("player", i) do
81 SCTManaGainTooltip:ClearLines();
82 SCTManaGainTooltip:SetUnitBuff("player", i);
83 buffName = SCTManaGainTooltipTextLeft1:GetText();
84  
85 if ( buffName and strfind(buffName, "Spirit Tap") and SCT_ManaGain_Saved[playerName].SpiritTap ) then
86 return true;
87 elseif ( buffName and strfind(buffName, "Drink") and SCT_ManaGain_Saved[playerName].Drink ) then
88 return true;
89 elseif ( buffName and strfind(buffName, "Evocation") and SCT_ManaGain_Saved[playerName].Evocation ) then
90 return true;
91 end
92  
93 i = i + 1;
94 end
95  
96 return false;
97  
98 end
99  
100 function SCT_ManaGain_AddMessage(msg)
101  
102 if ( DEFAULT_CHAT_FRAME ) then
103 DEFAULT_CHAT_FRAME:AddMessage("SCT_ManaGain: "..msg);
104 end
105  
106 end
107  
108 function SCT_ManaGain_ShowStatus()
109  
110 if ( SCT_ManaGain_Saved[playerName].Drink ) then
111 SCT_ManaGain_AddMessage("mana-gain display while drinking is enabled.");
112 else
113 SCT_ManaGain_AddMessage("mana-gain display while drinking is disabled.");
114 end
115  
116 if ( playerClass == "Mage" ) then
117 if ( SCT_ManaGain_Saved[playerName].Evocation ) then
118 SCT_ManaGain_AddMessage("mana-gain display while casting Evocation is enabled.");
119 else
120 SCT_ManaGain_AddMessage("mana-gain display while casting Evocation is enabled.");
121 end
122 end
123  
124 if ( playerClass == "Priest" ) then
125 if ( SCT_ManaGain_Saved[playerName].SpiritTap ) then
126 SCT_ManaGain_AddMessage("mana-gain display while Spirit Tapped is enabled.");
127 else
128 SCT_ManaGain_AddMessage("mana-gain display while Spirit Tapped is disabled.");
129 end
130 end
131  
132 end
133  
134 function SCT_ManaGain_ShowUsage()
135  
136 if ( DEFAULT_CHAT_FRAME ) then
137 SCT_ManaGain_AddMessage(" -- Usage:");
138 DEFAULT_CHAT_FRAME:AddMessage(" -Use \"/sctmanagain\" or \"/sctmg\"");
139 DEFAULT_CHAT_FRAME:AddMessage(" -\"/sctmanagain help\" -- shows these usage tips.");
140 DEFAULT_CHAT_FRAME:AddMessage(" -\"/sctmanagain drink [on/off]\" -- enables or disables mana-gain display while drinking.");
141 if ( playerClass == "Priest" ) then
142 DEFAULT_CHAT_FRAME:AddMessage(" -\"/sctmanagain spirittap [on/off]\" -- enables or disables mana-gain display while spirit tapped.");
143 end
144 if ( playerClass == "Mage" ) then
145 DEFAULT_CHAT_FRAME:AddMessage(" -\"/sctmanagain evocation [on/off\" -- enables or disables mana-gain display while casting Evocation.");
146 end
147 end
148  
149 end
150  
151 function SCT_ManaGain_NextParameter(msg)
152  
153 local params = nil;
154 local command = nil;
155 local index = strfind(msg, " ");
156  
157 if ( index ) then
158 command = strsub(msg, 1, index - 1);
159 params = strsub(msg, index + 1);
160 else
161 command = msg;
162 end
163  
164 return command, params;
165  
166 end
167  
168 function SCT_ManaGain_SlashHandler(msg)
169  
170 if ( not msg or strlen(msg) <= 0 ) then
171 SCT_ManaGain_ShowStatus();
172 return;
173 end
174  
175 local command, params = SCT_ManaGain_NextParameter(string.lower(msg));
176  
177 if ( command == "drink" ) then
178 if ( not params ) then
179 if ( SCT_ManaGain_Saved[playerName].Drink ) then
180 SCT_ManaGain_AddMessage("mana-gain display while drinking is enabled.");
181 else
182 SCT_ManaGain_AddMessage("mana-gain display while drinking is disabled.");
183 end
184 else
185 if ( params == "on" ) then
186 SCT_ManaGain_AddMessage("mana-gain display while drinking is now enabled.");
187 SCT_ManaGain_Saved[playerName].Drink = true;
188 elseif ( params == "off" ) then
189 SCT_ManaGain_AddMessage("mana-gain display while drinking is now enabled.");
190 SCT_ManaGain_Saved[playerName].Drink = false;
191 else
192 SCT_ManaGain_ShowUsage();
193 end
194 end
195 return;
196 elseif ( command == "spirittap" ) then
197 if ( playerClass ~= "Priest" ) then
198 SCT_ManaGain_AddMessage("you are not a priest.")
199 return;
200 end
201  
202 if ( not params ) then
203 if ( SCT_ManaGain_Saved[playerName].SpiritTap ) then
204 SCT_ManaGain_AddMessage("mana-gain display while Spirit Tapped is enabled.");
205 else
206 SCT_ManaGain_AddMessage("mana-gain display while Spirit Tapped is disabled.");
207 end
208 else
209 if ( params == "on" ) then
210 SCT_ManaGain_Saved[playerName].SpiritTap = true;
211 SCT_ManaGain_AddMessage("mana-gain display while Spirit Tapped is now enabled.");
212 elseif ( params == "off" ) then
213 SCT_ManaGain_Saved[playerName].SpiritTap = false;
214 SCT_ManaGain_AddMessage("mana-gain display while Spirit Tapped is now disabled.");
215 else
216 SCT_ManaGain_ShowUsage();
217 end
218 end
219 return;
220 elseif ( command == "evocation" ) then
221 if ( playerClass ~= "Mage" ) then
222 SCT_ManaGain_AddMessage("you are not a mage.")
223 return;
224 end
225  
226 if ( not params ) then
227 if ( SCT_ManaGain_Saved[playerName].Evocation ) then
228 SCT_ManaGain_AddMessage("mana-gain display while casting Evocation is enabled.");
229 else
230 SCT_ManaGain_AddMessage("mana-gain display while casting Evocation is enabled.");
231 end
232 else
233 if ( params == "on" ) then
234 SCT_ManaGain_Saved[playerName].Evocation = true;
235 SCT_ManaGain_AddMessage("mana-gain display while casting Evocation is now enabled.");
236 elseif ( params == "off" ) then
237 SCT_ManaGain_Saved[playerName].Evocation = false;
238 SCT_ManaGain_AddMessage("mana-gain display while casting Evocation is now disabled.");
239 else
240 SCT_ManaGain_ShowUsage();
241 end
242 end
243 return;
244 else
245 SCT_ManaGain_ShowUsage();
246 end
247 end