From c728947268a432a7e8a1e993dbdf0a7cd74a417a Mon Sep 17 00:00:00 2001 From: Sidoine De Wispelaere Date: Sun, 3 Apr 2011 12:20:55 +0000 Subject: [PATCH] added enemies function git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@394 d5049fe3-3747-40f7-a4b5-f36d6801af5f --- Condition.lua | 3 +++ Ovale.lua | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/Condition.lua b/Condition.lua index 9f6230f..a61a29e 100644 --- a/Condition.lua +++ b/Condition.lua @@ -578,6 +578,9 @@ Ovale.conditions= end return startCast + castTime/1000 end, + enemies = function(condition) + return Ovale:GetNumberOfEnemies(), 0, 0 + end, Exists = function(condition) return testbool(UnitExists(getTarget(condition.target)) == 1, condition[1]) end, diff --git a/Ovale.lua b/Ovale.lua index 7f37685..16c5d81 100644 --- a/Ovale.lua +++ b/Ovale.lua @@ -71,6 +71,8 @@ Ovale.counter = {} Ovale.lastSpell = {} --the damage of the last spell or dot (by id) Ovale.spellDamage = {} +Ovale.numberOfEnemies = nil +Ovale.enemies = {} Ovale.buffSpellList = { @@ -162,6 +164,15 @@ Ovale.buffSpellList = 8042, --Earth Shock 50285 --Dust Cloud (Tallstrider) }, + castslow = + { + 1714, --Curse of Tongues + 58604, --Lava Breath (Core Hound) + 50274, --Spore Cloud (Sporebat) + 5761, --Mind-numbing Poison + 73975, --Necrotic Strike + 31589 --Slow + }, bleed= { 33876, --Mangle cat @@ -838,6 +849,31 @@ function Ovale:COMBAT_LOG_EVENT_UNFILTERED(event, ...) -- self:Print(select(1, ...)) --end end + + if self.numberOfEnemies then + if event == "UNIT_DIED" then + for k,v in pairs(self.enemies) do + if k==destGUID then + self.enemies[v] = nil + self.numberOfEnemies = self.numberOfEnemies - 1 + --self:Print("enemy die") + end + end + elseif sourceFlags and not self.enemies[sourceGUID] and bit.band(sourceFlags, COMBATLOG_OBJECT_REACTION_HOSTILE)>0 + and bit.band(sourceFlags, COMBATLOG_OBJECT_AFFILIATION_OUTSIDER) > 0 and + destFlags and bit.band(destFlags, COMBATLOG_OBJECT_AFFILIATION_OUTSIDER) == 0 then + self.enemies[sourceGUID] = true + --self:Print("new ennemy source=".. sourceName) + self.numberOfEnemies = self.numberOfEnemies + 1 + elseif destGUID and not self.enemies[destGUID] and bit.band(destFlags, COMBATLOG_OBJECT_REACTION_HOSTILE)>0 + and bit.band(destFlags, COMBATLOG_OBJECT_AFFILIATION_OUTSIDER) > 0 and + sourceFlags and bit.band(sourceFlags, COMBATLOG_OBJECT_AFFILIATION_OUTSIDER) == 0 then + self.enemies[destGUID] = true + --self:Print("new ennemy dest=".. destName) + self.numberOfEnemies = self.numberOfEnemies + 1 + end + end + if self.otherDebuffsEnabled then if event == "UNIT_DIED" then --Remove any dead unit from otherDebuffs @@ -928,6 +964,13 @@ function Ovale:GLYPH_UPDATED(event) self.needCompile = true end +function Ovale:GetNumberOfEnemies() + if not self.numberOfEnemies then + self.numberOfEnemies = 0 + end + return self.numberOfEnemies +end + function Ovale:RemoveSpellFromList(spellId, lineId) for i,v in ipairs(self.lastSpell) do if v.lineId == lineId then @@ -1097,7 +1140,10 @@ function Ovale:PLAYER_REGEN_DISABLED() self.score = 0 self.maxScore = 0 self.combatStartTime = self.maintenant - + if self.numberOfEnemies then + self.numberOfEnemies = 0 + self.enemies = {} + end self:UpdateVisibility() end -- 1.7.9.5