-- heal ability file

	local _detalhes = 		_G._detalhes
	local _

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> constants

	local alvo_da_habilidade	=	_detalhes.alvo_da_habilidade
	local habilidade_cura		=	_detalhes.habilidade_cura
	local container_combatentes =	_detalhes.container_combatentes
	local container_heal_target	=	_detalhes.container_type.CONTAINER_HEALTARGET_CLASS
	local container_playernpc	=	_detalhes.container_type.CONTAINER_PLAYERNPC

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> internals

	function habilidade_cura:NovaTabela (id, link)

		local _newHealSpell = {

			id = id,
			counter = 0,

			--> totals
			total = 0,
			totalabsorb = 0,
			absorbed = 0,
			overheal = 0,
			totaldenied = 0,

			--> normal hits
			n_min = 0,
			n_max = 0,
			n_amt = 0,
			n_curado = 0,

			--> critical hits
			c_min = 0,
			c_max = 0,
			c_amt = 0,
			c_curado = 0,

			--> targets containers
			targets = {},
			targets_overheal = {},
			targets_absorbs = {}
		}

		return _newHealSpell
	end

	function habilidade_cura:Add (serial, nome, flag, amount, extraSpellID, absorbed, critical, overhealing, is_shield)

		amount = amount or 0
		self.targets [nome] = (self.targets [nome] or 0) + amount

		if (absorbed == "SPELL_HEAL_ABSORBED") then
			self.counter = self.counter + 1
			self.totaldenied = self.totaldenied + amount

			local healerName = critical

			--create the denied table spells, on the fly
			if (not self.heal_denied) then
				self.heal_denied = {}
				self.heal_denied_healers = {}
			end

			self.heal_denied [extraSpellID] = (self.heal_denied [extraSpellID] or 0) + amount
			self.heal_denied_healers [healerName] = (self.heal_denied_healers [healerName] or 0) + amount
		else

			self.total = self.total + amount
			self.counter = self.counter + 1

			if (absorbed and absorbed > 0) then
				self.absorbed = self.absorbed + absorbed
			end

			if (overhealing and overhealing > 0) then
				self.overheal = self.overheal + overhealing
				self.targets_overheal [nome] = (self.targets_overheal [nome] or 0) + overhealing
			end

			if (is_shield) then
				self.totalabsorb = self.totalabsorb + amount
				self.targets_absorbs [nome] = (self.targets_absorbs [nome] or 0) + amount
			end

			if (critical) then
				self.c_curado = self.c_curado+amount --> amount � o total de dano
				self.c_amt = self.c_amt+1 --> amount � o total de dano
				if (amount > self.c_max) then
					self.c_max = amount
				end
				if (self.c_min > amount or self.c_min == 0) then
					self.c_min = amount
				end
			else
				self.n_curado = self.n_curado+amount
				self.n_amt = self.n_amt+1
				if (amount > self.n_max) then
					self.n_max = amount
				end
				if (self.n_min > amount or self.n_min == 0) then
					self.n_min = amount
				end
			end

		end

	end

