local Vector2 = require("#microsoft.xna.framework.vector2")
local Audio = require("#Celeste.Audio")
local dificuldade = 0

  function onStay()

    -- dificuldade
    for i = 1, 8 do
        if getFlag("papel" .. i) then 
        dificuldade = dificuldade + 1
        end
    end

--    while not breathingMinigame.Completed do
--      local t = 1 - (contador / frames_de_espera)
--
--      -- quero que ele fique só entre 0 e 1
--      local valor = t
--      if t < 0 then valor = 0
--      elseif t > 1 then valor = 1 end
--
--      Audio.SetMusicParam("fade", valor);
--      contador = contador + 1
--
--      wait()
--    end
    
    -- summonar
    rhuan = celeste.Mod.MaxHelpingHand.Entities.MoreCustomNPC.GetNPC("rhuan")

    -- encontrar
--   if rhuan.position.X < (player.Position.X + (dificuldade * 20)) and rhuan.position.X > (player.Position.X - (dificuldade * 20)) then
--      rhuan.Position = Vector2.Lerp(rhuan.Position, player.Position + vector2(0, 0), monocle.Ease.Linear(0.025))
--    end

-- Ajuste este valor para deixar o Rhuan mais rápido ou lento
local velocidade = dificuldade

-- Mantém a verificação da zona de "aggro" (distância X)
  if rhuan.Position.X < (player.Position.X + 60) and rhuan.Position.X > (player.Position.X - 60) then
      local diferenca = player.Position - rhuan.Position
      if diferenca:Length() > 1.0 then
          local direcao = Vector2.Normalize(diferenca)
          rhuan.Position = rhuan.Position + (direcao * velocidade * monocle.Engine.DeltaTime)
      end
  end

    -- virar
    if player.Position.X < rhuan.Position.X then
      rhuan:SetHorizontalScale(1)
    end

    if player.Position.X > rhuan.Position.X then
      rhuan:SetHorizontalScale(-1)
    end

    -- matar
    if rhuan.position.X < (player.Position.X + 8) and rhuan.position.X > (player.Position.X - 8) and rhuan.position.Y < (player.Position.Y + 8) and rhuan.position.Y > (player.Position.Y - 11) then
      setFlag("pereca")
    end

end