45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| --TSU
 | |
| --COMBAT_LOG_EVENT_UNFILTERED
 | |
| function(allstates, e, ...)
 | |
|     for k, v in pairs(allstates) do
 | |
|         v.show = false
 | |
|         v.changed = true
 | |
|     end
 | |
|     local se = select(2, ...)
 | |
|     local pname = UnitName("player")
 | |
|     if se == "SPELL_AURA_APPLIED" or se == "SPELL_AURA_APPLIED_DOSE" then
 | |
|         local caster, target, aura = select(5, ...), select(9, ...), select(13, ...)
 | |
|         --print(caster, target, aura, pname)
 | |
|         if caster == pname and target == pname and aura == "Fingers of Frost" then
 | |
|             aura_env.stacks = aura_env.stacks + 1
 | |
|             --print("1", aura_env.stacks)
 | |
|         end
 | |
|     elseif (se == "SPELL_AURA_REMOVED" or se == "SPELL_AURA_REMOVED_DOSE") and GetTime() - aura_env.cast > 2 then
 | |
|         local caster, target, aura = select(5, ...), select(9, ...), select(13, ...)
 | |
|         --print(caster, target, aura)
 | |
|         if caster == pname and target == pname and aura == "Fingers of Frost" then
 | |
|             aura_env.stacks = aura_env.stacks - 1
 | |
|             --print("2", aura_env.stacks)
 | |
|         end
 | |
|     elseif se == "SPELL_CAST_SUCCESS" then
 | |
|         local caster, spell = select(5, ...), select(13, ...)
 | |
|         if caster == pname and spell == "Ice Lance" and aura_env.stacks > 0 then
 | |
|             aura_env.stacks = aura_env.stacks - 1
 | |
|             aura_env.cast = GetTime()
 | |
|             --print("3", aura_env.stacks)
 | |
|         end
 | |
|     end
 | |
|     for i = 1, aura_env.stacks do
 | |
|         allstates[i] = {
 | |
|             show = true,
 | |
|             changed = true,
 | |
|         }
 | |
|     end
 | |
|     --DevTools_Dump(allstates)
 | |
|     return true
 | |
| end
 | |
| 
 | |
| --INIT
 | |
| aura_env.stacks = 0
 | |
| aura_env.cast = 0
 |