function item_dominator:OnSpellStart( )
local caster = self:GetCaster()
self.target = self:GetCursorTarget()
local target = self.target
local health = self:GetSpecialValueFor("health")
local speed = self:GetSpecialValueFor("speed")
if target:IsAncient() then return end
if target:IsMagicImmune() then return end
if IsBoss(target) then return end
if target.dominated then return end
if not self.dominated_units then
self.dominated_units = {}
end
for k,v in pairs(self.dominated_units) do
if v and IsValidEntity(v) then
v.disable_drop = true
v:ForceKill(false)
end
end
self.dominated_units = {}
local t_health = target:GetHealth()
local t_max_health = target:GetMaxHealth()
local t_speed = target:GetBaseMoveSpeed()
target.disable_drop = true
target:ForceKill(false)
local unit = CreateUnitByName(target:GetUnitName(), target:GetAbsOrigin(), false, caster, caster, caster:GetTeamNumber() )
unit:SetHealth(t_health)
unit:AddNewModifier(caster, self, "modifier_dominator_health", {})
unit:AddNewModifier(caster, self, "modifier_kill", {duration = self:GetSpecialValueFor("duration")})
unit:SetControllableByPlayer(caster:GetPlayerOwnerID(),true)
unit:SetOwner(caster)
if t_max_health < health then
print("Set Health to "..health)
end
if t_speed < speed then
print("Set Movespeed to "..speed)
end
table.insert(self.dominated_units, unit)
unit.dominated = true
end