local Exori_gran = true
local Exori = true
local Exori_gran_count = 3
local Exori_count = 2
local Exori_ico_count = 1
local Exori_hur_count = 1
local Exori_min = true
local Exori_min_count = 2
local MonstersToConsider = {"Monstro"}
local function Min()
local HIGHEST_AMOUNT, BEST_DIRECTION = 0, Self.LookDirection()
for DIRECTION, CREATURES_AMOUNT in pairs({[DIRECTION_NORTH] = 0, [DIRECTION_EAST] = 0, [DIRECTION_SOUTH] = 0, [DIRECTION_WEST] = 0}) do
CREATURES_AMOUNT = Self.MonstersAroundSpell("FRONT", DIRECTION, unpack(MonstersToConsider))
if (CREATURES_AMOUNT > HIGHEST_AMOUNT or (CREATURES_AMOUNT >= HIGHEST_AMOUNT and DIRECTION == Self.LookDirection())) then
HIGHEST_AMOUNT, BEST_DIRECTION = CREATURES_AMOUNT, DIRECTION
end
end
if (HIGHEST_AMOUNT >= 3) then
while (Self.LookDirection() ~= BEST_DIRECTION and cancast('exori min')) do
Self.Turn(BEST_DIRECTION)
updateworld()
end
if cancast('exori min') and Self.LookDirection() == BEST_DIRECTION and maround(1, unpack(MonstersToConsider)) >= 2 then
cast('exori min')
end
elseif (HIGHEST_AMOUNT == 2) then
while (Self.LookDirection() ~= BEST_DIRECTION and cancast('exori min')) do
Self.Turn(BEST_DIRECTION)
updateworld()
end
if cancast('exori min') and Self.LookDirection() == BEST_DIRECTION and maround(1, unpack(MonstersToConsider)) >= 2 then
cast('exori min')
end
end
end
function TILESHOOTABLE()
for POSX, POSY, POSZ in Tile.ScreenArea() do
if Tile.GetByPosition(target.POSX, target.POSY, target.POSZ):isShootable() then
return true
end
end
return false
end
if Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
if standtime >= 2300 or getsettings("Settings\\Targeting\\Enabled") == "yes" then
if (maround(1, unpack(MonstersToConsider)) >= Exori_gran_count or (target.name == "Young Sea Serpent" and target.dist <= 1 and target.hppc <= 35 and FBEGYSS)) and cancast('exori gran') and ((paround(10, true) == 0) or not PvP_Server) and Exori_gran and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
cast('exori gran')
updateworld()
elseif maround(1, unpack(MonstersToConsider)) >= Exori_count and cancast('exori') and ((paround(10, true) == 0) or not PvP_Server) and Exori and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
cast('exori')
updateworld()
elseif maround(1, unpack(MonstersToConsider)) >= Exori_min_count and cancast('exori min') and ((paround(10, true) == 0 ) or not PvP_Server) and Exori_min and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
Min()
updateworld()
elseif (maround(1, unpack(MonstersToConsider)) >= Exori_ico_count) and cancast('exori ico') and target.id ~= 0 and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
cast('exori ico')
elseif ((maround(5, unpack(MonstersToConsider)) >= Exori_hur_count)) and cancast('exori hur') and target.id ~= 0 and TILESHOOTABLE() and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
cast('exori hur')
end
else
if (maround(1, unpack(MonstersToConsider)) >= Exori_ico_count) and cancast('exori ico') and target.id ~= 0 and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
cast('exori ico')
elseif ((maround(5, unpack(MonstersToConsider)) >= Exori_hur_count)) and cancast('exori hur') and target.id ~= 0 and TILESHOOTABLE() and Self.CoolDown(SPELL_GROUP_ATTACK) == 0 then
cast('exori hur')
end
end
end