;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL

Topo

Líderes no Free Fire: Conheça a Cavalaria da Team Liquid na LBFF

Recém-chegada ao Free Fire, Team Liquid protagonizou a liderança de diversas rodadas da LBFF - Divulgação/Team Liquid
Recém-chegada ao Free Fire, Team Liquid protagonizou a liderança de diversas rodadas da LBFF Imagem: Divulgação/Team Liquid

Thaime Lopes

Colaboração ao START

14/03/2020 04h00

A holandesa Team Liquid viu no Free Fire o que muita gente também já viu: talento de sobra no cenário competitivo brasileiro. Por isso, a organização europeia resolveu apostar na ex-equipe da B8 para compor a equipe que competiria na Liga Brasileira.

O investimento tem dado retorno, já que a Liquid dormiu como líder em três dos cinco finais de semana de disputa do torneio até agora.

Famosa mundo afora pela qualidade de seus jogadores independente do jogo, a Liquid foi fundada em 2000 como um clã do Starcraft II. Com o ar dos anos, foi expandindo sua área de atuação e hoje possui times que competem em CS:GO, LoL, Rainbow Six, PUBG e outras nove modalidades, além, claro, de Free Fire.

A chegada dos Cavaleiros no Frifas se deu ao anunciarem em janeiro deste ano a integração da ex-equipe B8, que ficou em quinto lugar na última temporada da Pro League. Os jogadores Peu, Luuuking, LukasTD, Raposo e JAPABKR estão juntos desde a época da B4STARDOS, onde iniciaram suas carreiras profissionais no Free Fire.


JAPA é o líder da galera, responsável por distribuir as funções e chamar as calls durante as partidas. A comunicação entre o time é um dos fatores cruciais na excelente atuação e fica evidente que estarem juntos há tanto tempo faz com que eles compreendam muito bem a jogada do companheiro. Mesmo em momentos que estão em desvantagem, eles conseguem estudar rápido a situação e responder com muita habilidade.

Na LBFF, a Liquid tem segurado a liderança por boa parte dos fins de semana. Até agora, eles foram líderes três vezes e chegam na reta final da competição com boas chances de título. Depois da rodada de sexta (13), a Liquid segue na liderança, com 1363 pontos contra 1315 da LOUD.

Será que vem título por aí? Os últimos dias de disputas da Liga acontecem nesse fim de semana, com partidas na sexta (13), sábado (14) e domingo (15).

SIGA O START NAS REDES SOCIAIS

Twitter: https://twitter.com/start_uol
Instagram: https://www.instagram.com/start_uol/
Facebook: https://www.facebook.com/startuol/
TikTok: http://vm.tiktok.com/Rqwe2g/
Twitch: https://www.twitch.tv/start_uol