-- area emote npc id: 243605
local TRIGGER_RADIUS = 50
local EMOTE_TIMER_RATE = 2000
local TRIGGER_MINIMUM = 3

local area_emotes = {
  {
    loc = { -280, -108, 6 },
    color = MT.Yellow,
    text = "Your footsteps break the silence in the caverns. Your activity has alarmed nearby scouts looking to please their master with information of an intruder.  Perhaps it wasn't so wise of you to come here..."
  },
  {
    loc = { 542, 109, 9 },
    color = MT.Yellow,
    text = "Something large and menacing claws at the rocks just ahead.  The scrapes grind with the anticipation of the slaughter soon to come.  Whatever beast lingers ahead knows that it is almost time for it to unleash its fury and serve the master that put it here."
  },
  {
    loc = { 195, -4, 2 },
    color = MT.Yellow,
    text = "Something large and menacing claws at the rocks just ahead.  The scrapes grind with the anticipation of the slaughter soon to come.  Whatever beast lingers ahead knows that it is almost time for it to unleash its fury and serve the master that put it here."
  },
  {
    loc = { 373, 330, 7 },
    color = MT.Yellow,
    text = "Something large and menacing claws at the rocks just ahead.  The scrapes grind with the anticipation of the slaughter soon to come.  Whatever beast lingers ahead knows that it is almost time for it to unleash its fury and serve the master that put it here."
  },
}

function event_spawn(e)
  -- find our emote index
  for i=1,#area_emotes do
    local area = area_emotes[i]
    local dist = e.self:CalculateDistance(area.loc[1], area.loc[2], area.loc[3])
    if dist < 10 then
      e.self:SetEntityVariable("emote_index", tostring(i))
      eq.set_timer("area_emote", EMOTE_TIMER_RATE)
      break
    end
  end
end

function event_timer(e)
  if e.timer == "area_emote" then
    local index = tonumber(e.self:GetEntityVariable("emote_index")) or 0
    if index > 0 and #e.self:GetClientsInProximity(TRIGGER_RADIUS) >= TRIGGER_MINIMUM then
      eq.get_entity_list():MessageClose(e.self, true, 100, area_emotes[index].color, area_emotes[index].text)
      eq.depop()
    end
  end
end
