function V08 takes unit Z77,unit X77,integer V58,real P08 returns nothing
if V58==AA4 then
return
endif
if V58==AB4 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS)
elseif V58==AC4 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
elseif V58==A34 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC,WEAPON_TYPE_WHOKNOWS)
elseif V58==A64 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_PIERCE,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
elseif V58==AL4 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
elseif V58==A14 then
call SetUnitState(X77,UNIT_STATE_LIFE,RMaxBJ(GetUnitState(X77,UNIT_STATE_LIFE)-P08,1))
if GetUnitState(X77,UNIT_STATE_LIFE)<2 then
call UnitRemoveBuffs(X77,true,true)
call UnitRemoveAbility(X77,'Aetl')
call UnitDamageTarget(CreateUnit(GetOwningPlayer(Z77),'e00E',0,0,0),X77,100000000.,true,false,ATTACK_TYPE_MELEE,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
endif
elseif V58==A04 then
if GetUnitAbilityLevel(X77,'Aetl')>0 or GetUnitAbilityLevel(X77,'B01N')>0 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC,WEAPON_TYPE_WHOKNOWS)
else
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_HERO,DAMAGE_TYPE_UNIVERSAL,WEAPON_TYPE_WHOKNOWS)
endif
elseif V58==AA94 then
call UnitDamageTarget(Z77,X77,P08,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_UNIVERSAL,WEAPON_TYPE_WHOKNOWS)
endif
endfunction