Ants on Fire

Google "ants" and watch them burn.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Ants on Fire
// @namespace    http://tampermonkey.net
// @author       redrox
// @version      1.7
// @description  Google "ants" and watch them burn.
// @include      *://www.google.*/*
// @include      *://google.*/*
// @match        *://*://*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    const trigger = () => {

        const isAnts = window.location.href.toLowerCase().includes('q=ants');
        const existing = document.getElementById('ant-fire-realistic');

        if (isAnts && !existing) {
            const container = document.createElement('div');
            container.id = 'ant-fire-realistic';
            Object.assign(container.style, {
                position: 'fixed', bottom: '0', left: '0', width: '100vw', height: '140px',
                pointerEvents: 'none', zIndex: '2147483647', overflow: 'hidden',
                background: 'linear-gradient(to top, rgba(255, 69, 0, 0.4), transparent)'
            });

            for (let i = 0; i < 50; i++) {
                const flame = document.createElement('div');
                const size = Math.random() * 30 + 15;
                const duration = Math.random() * 0.6 + 0.3;

                Object.assign(flame.style, {
                    position: 'absolute',
                    bottom: '-15px',
                    left: Math.random() * 100 + '%',
                    width: size + 'px',
                    height: (size * 3) + 'px',
                    backgroundColor: i % 3 === 0 ? '#FF4500' : (i % 3 === 1 ? '#FF8C00' : '#FFD700'),
                    borderRadius: '50% 50% 20% 20%',
                    filter: 'blur(5px)',
                    opacity: '0.7',
                    mixBlendMode: 'screen',
                    animation: `burnUpReal ${duration}s infinite alternate ease-in-out`
                });

                flame.style.animationDelay = (Math.random() * 1) + 's';
                container.appendChild(flame);
            }

            const s = document.createElement('style');
            s.innerHTML = `
                @keyframes burnUpReal {
                    0% { transform: translateY(0) scaleX(1); opacity: 0.8; filter: blur(4px); }
                    100% { transform: translateY(-60px) scaleX(1.5); opacity: 0.1; filter: blur(10px); }
                }
            `;
            document.head.appendChild(s);
            document.body.appendChild(container);

        } else if (!isAnts && existing) {
            existing.remove();
        }
    };

    setInterval(trigger, 1000);
    trigger();
})();