Dad found my MY filler… 🥲🥲

cellularsasquatch

cellularsasquatch

Iron
Joined
Dec 30, 2025
Posts
94
Reputation
65
i told him it was peptides so he wouldn’t get mad but then it occurred to him to inject it and he injected it in his booty like most doctors do And now he has filler in his booty and he thick but his furious how can i reverse it? is it over ?
 
  • JFL
  • +1
Reactions: God_Fearing_Virgin, anthony267, cb006 and 3 others
Ha Ha
 
  • +1
Reactions: sample, Wasq and cellularsasquatch
i told him it was peptides so he wouldn’t get mad but then it occurred to him to inject it and he injected it in his booty like most doctors do And now he has filler in his booty and he thick but his furious how can i reverse it? is it over ?
tell him to enjoy the bbl
 
  • JFL
Reactions: cb006, 2s2f and cellularsasquatch
me when i fucking lie

someone rep this
 
  • JFL
  • +1
Reactions: arlo_420 and 2s2f
tales + dnr
 
  • JFL
Reactions: Sub6cel, 2s2f and sample
JavaScript:
(function () {
  "use strict";

  const XP_PER_LEVEL = 100;
  const EGG_DISCOVER_RADIUS_METERS = 30;
  const HATCH_TAPS_REQUIRED = 5;

  const quests = [
    { id: 1, name: "First Steps", message: "Walk 500m to complete.", targetMeters: 500, xp: 25 },
    { id: 2, name: "Short Trek", message: "Walk 1km to complete.", targetMeters: 1000, xp: 40 },
    { id: 3, name: "The Long March", message: "Walk 2km to complete.", targetMeters: 2000, xp: 75 },
  ];

  const characters = [
    { id: "dragon", name: "Dragon", emoji: "🐉", rarity: "legendary", spawnWeight: 5 },
    { id: "star", name: "Star", emoji: "⭐", rarity: "common", spawnWeight: 60 },
    { id: "monkey", name: "Monkey", emoji: "🐒", rarity: "rare", spawnWeight: 35 },
  ];

  const TOTAL_SPAWN_WEIGHT = characters.reduce(function (sum, c) {
    return sum + c.spawnWeight;
  }, 0);

  function pickRandomCharacter() {
    let r = Math.random() * TOTAL_SPAWN_WEIGHT;
    for (let i = 0; i < characters.length; i++) {
      r -= characters[i].spawnWeight;
      if (r <= 0) return characters[i];
    }
    return characters[characters.length - 1];
  }

  function haversineMeters(lat1, lon1, lat2, lon2) {
    const R = 6371000;
    const dLat = ((lat2 - lat1) * Math.PI) / 180;
    const dLon = ((lon2 - lon1) * Math.PI) / 180;
    const a =
      Math.sin(dLat / 2) * Math.sin(dLat / 2) +
      Math.cos((lat1 * Math.PI) / 180) *
        Math.cos((lat2 * Math.PI) / 180) *
        Math.sin(dLon / 2) *
        Math.sin(dLon / 2);
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    return R * c;
  }

  function formatDistance(m) {
    if (m >= 1000) return (m / 1000).toFixed(1) + "km";
    return Math.round(m) + "m";
  }

  let totalXp = 0;
  let currentQuest = null;
  let questIndex = 0;
  let watchId = null;
  let startPos = null;
  let lastPos = null;
  let totalDistance = 0;

  let collectedCharacters = [];
  let eggs = [];
  let nextEggId = 1;

  let playerMarker = null;
  let characterMarkers = [];
  let eggMarkers = [];
  let eggLocations = [];
  let map = null;
  let playerLat = null;
  let playerLon = null;

  let hatchingEggId = null;
  let hatchTapCount = 0;
  let eggHasHatched = false;

  const startBtn = document.getElementById("start-btn");
  const completeBtn = document.getElementById("complete-btn");
  const questStatus = document.getElementById("quest-status");
  const logEntries = document.getElementById("log-entries");
  const logEmpty = document.getElementById("log-empty");
  const playerLevelEl = document.getElementById("player-level");
  const xpTextEl = document.getElementById("xp-text");
  const xpFillEl = document.getElementById("xp-fill");
  const gpsStatus = document.getElementById("gps-status");
  const gpsText = document.getElementById("gps-text");
  const distanceProgress = document.getElementById("distance-progress");
  const distanceFill = document.getElementById("distance-fill");
  const distanceText = document.getElementById("distance-text");
  const inventoryList = document.getElementById("inventory-list");
  const inventoryEmpty = document.getElementById("inventory-empty");
  const collectPopup = document.getElementById("collect-popup");
  const collectPopupText = document.getElementById("collect-popup-text");

  const eggOverlay = document.getElementById("egg-overlay");
  const eggVisual = document.getElementById("egg-visual");
  const eggCharacter = document.getElementById("egg-character");
  const eggOverlayText = document.getElementById("egg-overlay-text");
  const eggHatchBtn = document.getElementById("egg-hatch-btn");

  function initMap() {
    map = L.map("map", { zoomControl: false }).setView([20, 0], 2);
    L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
      attribution: "© OpenStreetMap",
      maxZoom: 19,
    }).addTo(map);
    L.control.zoom({ position: "topright" }).addTo(map);
  }

  function createCharacterIcon(char) {
    return L.divIcon({
      className: "character-marker",
      html:
        '<span style="font-size:28px;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.5));">' +
        char.emoji +
        "</span>",
      iconSize: [36, 36],
      iconAnchor: [18, 18],
    });
  }

  function createEggIcon() {
    return L.divIcon({
      className: "character-marker",
      html:
        '<span style="font-size:26px;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.6));">🥚</span>',
      iconSize: [32, 32],
      iconAnchor: [16, 16],
    });
  }

  function spawnCharacters(lat, lon) {
    characterMarkers.forEach(function (m) {
      if (map.hasLayer(m)) map.removeLayer(m);
    });
    characterMarkers = [];

    const count = 10;
    const radiusDeg = 0.004;

    for (let i = 0; i < count; i++) {
      const char = pickRandomCharacter();
      const offsetLat = (Math.random() - 0.5) * 2 * radiusDeg;
      const offsetLon = (Math.random() - 0.5) * 2 * radiusDeg;
      const mLat = lat + offsetLat;
      const mLon = lon + offsetLon;

      const icon = createCharacterIcon(char);
      const marker = L.marker([mLat, mLon], { icon: icon });
      marker.charData = char;
      marker.on("click", function () {
        collectCharacter(char, marker);
      });
      marker.addTo(map);
      characterMarkers.push(marker);
    }
  }

  function spawnEggLocations(lat, lon) {
    if (!map || eggLocations.length > 0) return;

    const count = 3;
    const radiusDeg = 0.003;
    eggLocations = [];

    for (let i = 0; i < count; i++) {
      const offsetLat = (Math.random() - 0.5) * 2 * radiusDeg;
      const offsetLon = (Math.random() - 0.5) * 2 * radiusDeg;
      eggLocations.push({
        id: "egg-loc-" + (i + 1),
        lat: lat + offsetLat,
        lon: lon + offsetLon,
        discovered: false,
        collected: false,
        marker: null,
      });
    }
  }

  function revealEggLocation(loc) {
    if (!map || loc.discovered || loc.collected) return;
    loc.discovered = true;

    const icon = createEggIcon();
    const marker = L.marker([loc.lat, loc.lon], { icon: icon });
    loc.marker = marker;
    eggMarkers.push(marker);

    marker.on("click", function () {
      collectEgg(loc, marker);
    });

    marker.addTo(map);

    collectPopupText.textContent = "You found a mysterious egg!";
    collectPopup.classList.remove("hidden");
    setTimeout(function () {
      collectPopup.classList.add("hidden");
    }, 2200);
  }

  function collectEgg(loc, marker) {
    if (loc.collected) return;
    loc.collected = true;

    if (marker && map && map.hasLayer(marker)) {
      map.removeLayer(marker);
    }
    eggMarkers = eggMarkers.filter(function (m) {
      return m !== marker;
    });

    eggs.push({ id: "egg-" + nextEggId++ });

    collectPopupText.textContent = "You collected an Egg!";
    collectPopup.classList.remove("hidden");
    setTimeout(function () {
      collectPopup.classList.add("hidden");
    }, 2200);

    updateInventory();
  }

  function checkEggDiscovery(lat, lon) {
    eggLocations.forEach(function (loc) {
      if (loc.collected || loc.discovered) return;
      const d = haversineMeters(lat, lon, loc.lat, loc.lon);
      if (d <= EGG_DISCOVER_RADIUS_METERS) {
        revealEggLocation(loc);
      }
    });
  }

  function collectCharacter(char, marker) {
    collectedCharacters.push(char);
    if (marker && map && map.hasLayer(marker)) map.removeLayer(marker);
    characterMarkers = characterMarkers.filter(function (m) {
      return m !== marker;
    });

    const centerLat = playerLat !== null ? playerLat : 40;
    const centerLon = playerLon !== null ? playerLon : 0;
    const newChar = pickRandomCharacter();
    const offsetLat = (Math.random() - 0.5) * 0.004;
    const offsetLon = (Math.random() - 0.5) * 0.004;
    const icon = createCharacterIcon(newChar);
    const newMarker = L.marker([centerLat + offsetLat, centerLon + offsetLon], { icon: icon });
    newMarker.charData = newChar;
    newMarker.on("click", function () {
      collectCharacter(newChar, newMarker);
    });
    newMarker.addTo(map);
    characterMarkers.push(newMarker);

    collectPopupText.textContent = "You collected a " + char.name + "!";
    collectPopup.classList.remove("hidden");
    setTimeout(function () {
      collectPopup.classList.add("hidden");
    }, 2200);

    updateInventory();
  }

  function updateInventory() {
    inventoryList.innerHTML = "";
    const hasEggs = eggs.length > 0;
    const hasChars = collectedCharacters.length > 0;

    if (!hasEggs && !hasChars) {
      inventoryEmpty.classList.remove("hidden");
      return;
    }

    inventoryEmpty.classList.add("hidden");

    if (hasEggs) {
      const header = document.createElement("li");
      header.className = "inventory-section";
      header.textContent = "Eggs";
      inventoryList.appendChild(header);

      eggs.forEach(function (egg) {
        const li = document.createElement("li");
        li.classList.add("inventory-egg");
        li.innerHTML =
          '<span class="char-emoji">🥚</span>' +
          '<span class="char-name">Mysterious Egg</span>' +
          '<span class="egg-status">Tap to hatch</span>';
        li.dataset.eggId = egg.id;
        li.addEventListener("click", function () {
          openEggOverlay(egg.id);
        });
        inventoryList.appendChild(li);
      });
    }

    if (hasChars) {
      const header = document.createElement("li");
      header.className = "inventory-section";
      header.textContent = "Characters";
      inventoryList.appendChild(header);

      collectedCharacters.forEach(function (char) {
        const li = document.createElement("li");
        li.innerHTML =
          '<span class="char-emoji">' +
          char.emoji +
          "</span>" +
          '<span class="char-name">' +
          char.name +
          "</span>" +
          '<span class="char-rarity ' +
          char.rarity +
          '">' +
          char.rarity +
          "</span>";
        inventoryList.appendChild(li);
      });
    }
  }

  function setGpsStatus(state, message) {
    gpsStatus.className = "gps-status " + state;
    gpsText.textContent = message;
  }

  function getLevel(xp) {
    return Math.floor(xp / XP_PER_LEVEL) + 1;
  }

  function getXpInCurrentLevel(xp) {
    return xp % XP_PER_LEVEL;
  }

  function updateStats() {
    const level = getLevel(totalXp);
    const xpInLevel = getXpInCurrentLevel(totalXp);
    const percent = (xpInLevel / XP_PER_LEVEL) * 100;

    playerLevelEl.textContent = level;
    xpTextEl.textContent = xpInLevel + " / " + XP_PER_LEVEL + " XP";
    xpFillEl.style.width = percent + "%";
  }

  function updatePlayerMarker(lat, lon) {
    playerLat = lat;
    playerLon = lon;
    if (playerMarker && map) {
      playerMarker.setLatLng([lat, lon]);
    } else if (map) {
      const icon = L.divIcon({
        className: "character-marker",
        html: '<span style="font-size:20px;">📍</span>',
        iconSize: [24, 24],
        iconAnchor: [12, 12],
      });
      playerMarker = L.marker([lat, lon], { icon: icon }).addTo(map);
    }
  }

  function stopWatching() {
    if (watchId !== null) {
      navigator.geolocation.clearWatch(watchId);
      watchId = null;
    }
    startPos = null;
    lastPos = null;
    totalDistance = 0;
  }

  function onPosition(pos) {
    const lat = pos.coords.latitude;
    const lon = pos.coords.longitude;

    if (!gpsStatus.classList.contains("active")) {
      setGpsStatus("active", "GPS active");
    }

    if (playerLat === null) {
      map.setView([lat, lon], 15);
      updatePlayerMarker(lat, lon);
      spawnCharacters(lat, lon);
      spawnEggLocations(lat, lon);
    } else {
      updatePlayerMarker(lat, lon);
    }

    checkEggDiscovery(lat, lon);

    if (!currentQuest || !startPos) return;

    if (!lastPos) {
      lastPos = { lat: lat, lon: lon };
      return;
    }

    const seg = haversineMeters(lastPos.lat, lastPos.lon, lat, lon);
    if (seg > 3) {
      totalDistance += seg;
      lastPos = { lat: lat, lon: lon };
      updateDistanceUI();

      if (totalDistance >= currentQuest.targetMeters) {
        completeQuest();
      }
    }
  }

  function updateDistanceUI() {
    const target = currentQuest.targetMeters;
    const pct = Math.min(100, (totalDistance / target) * 100);
    distanceFill.style.width = pct + "%";
    distanceText.textContent = formatDistance(totalDistance) + " / " + formatDistance(target);
  }

  function startQuest() {
    if (!navigator.geolocation) {
      questStatus.textContent = "GPS is not supported on this device.";
      return;
    }

    currentQuest = quests[questIndex % quests.length];
    questIndex += 1;

    questStatus.textContent = currentQuest.name + " — " + currentQuest.message;
    questStatus.classList.add("active");

    distanceProgress.classList.remove("hidden");
    distanceFill.style.width = "0%";
    distanceText.textContent = "0m / " + formatDistance(currentQuest.targetMeters);

    const entry = document.createElement("li");
    entry.textContent = "Started: " + currentQuest.name + ". " + currentQuest.message;
    logEntries.insertBefore(entry, logEntries.firstChild);

    startBtn.textContent = "Start Next Quest";
    startBtn.disabled = true;
    completeBtn.disabled = false;

    if (logEmpty) logEmpty.classList.add("hidden");

    totalDistance = 0;
    lastPos = null;

    navigator.geolocation.getCurrentPosition(
      function (pos) {
        startPos = { lat: pos.coords.latitude, lon: pos.coords.longitude };
        lastPos = startPos;
        if (map && playerLat === null) {
          map.setView([startPos.lat, startPos.lon], 15);
          updatePlayerMarker(startPos.lat, startPos.lon);
          spawnCharacters(startPos.lat, startPos.lon);
          spawnEggLocations(startPos.lat, startPos.lon);
        }
        watchId = navigator.geolocation.watchPosition(onPosition, onGpsError, {
          enableHighAccuracy: true,
          maximumAge: 5000,
          timeout: 10000,
        });
      },
      onGpsError,
      { enableHighAccuracy: true, maximumAge: 10000, timeout: 15000 }
    );
  }

  function onGpsError(err) {
    if (err.code === 1) {
      setGpsStatus("error", "Location denied");
    } else if (err.code === 2) {
      setGpsStatus("error", "Location unavailable");
    } else {
      setGpsStatus("error", "Location error");
    }
  }

  function completeQuest() {
    if (!currentQuest) return;

    stopWatching();

    totalXp += currentQuest.xp;
    const prevXpInLevel = getXpInCurrentLevel(totalXp - currentQuest.xp);
    const leveledUp = getXpInCurrentLevel(totalXp) < prevXpInLevel;

    const entry = document.createElement("li");
    entry.classList.add("completed");
    entry.textContent =
      "Completed: " + currentQuest.name + " (" + formatDistance(totalDistance) + ") (+" + currentQuest.xp + " XP)";
    logEntries.insertBefore(entry, logEntries.firstChild);

    currentQuest = null;
    questStatus.textContent = "No active quest. Start one and start walking!";
    questStatus.classList.remove("active");

    distanceProgress.classList.add("hidden");

    startBtn.textContent = "Start Quest";
    startBtn.disabled = false;
    completeBtn.disabled = true;

    updateStats();

    if (leveledUp) {
      playerLevelEl.classList.add("level-up");
      setTimeout(function () {
        playerLevelEl.classList.remove("level-up");
      }, 600);
    }
  }

  function setEggStage(stage) {
    if (!eggVisual) return;
    eggVisual.classList.remove("egg-stage-0", "egg-stage-1", "egg-stage-2", "egg-stage-3", "egg-crack");
    eggVisual.classList.add("egg-stage-" + stage);
  }

  function openEggOverlay(eggId) {
    if (!eggOverlay) return;
    const egg = eggs.find(function (e) {
      return e.id === eggId;
    });
    if (!egg) return;

    hatchingEggId = eggId;
    hatchTapCount = 0;
    eggHasHatched = false;

    eggOverlay.classList.remove("hidden");
    eggOverlayText.textContent = "Tap to hatch your egg";
    eggHatchBtn.textContent = "Tap to Hatch";

    if (eggCharacter) {
      eggCharacter.textContent = "";
      eggCharacter.classList.remove("visible");
    }
    if (eggVisual) {
      eggVisual.classList.remove("hidden");
      setEggStage(0);
    }
  }

  function handleEggHatchTap() {
    if (!hatchingEggId) return;

    if (!eggHasHatched) {
      hatchTapCount += 1;
      if (eggVisual) {
        eggVisual.classList.add("egg-crack");
        setTimeout(function () {
          eggVisual.classList.remove("egg-crack");
        }, 350);
      }

      const stage = Math.min(3, hatchTapCount);
      setEggStage(stage);

      if (hatchTapCount >= HATCH_TAPS_REQUIRED) {
        hatchEgg();
      }
    } else {
      closeEggOverlay();
    }
  }

  function hatchEgg() {
    if (!hatchingEggId) return;

    eggHasHatched = true;

    const reward = pickRandomCharacter();
    collectedCharacters.push(reward);

    eggs = eggs.filter(function (e) {
      return e.id !== hatchingEggId;
    });
    hatchingEggId = null;

    if (eggVisual) {
      eggVisual.classList.add("hidden");
    }
    if (eggCharacter) {
      eggCharacter.textContent = reward.emoji;
      eggCharacter.classList.add("visible");
    }

    eggOverlayText.textContent = "Your egg hatched into a " + reward.name + "!";
    eggHatchBtn.textContent = "Close";

    updateInventory();
  }

  function closeEggOverlay() {
    if (!eggOverlay) return;
    eggOverlay.classList.add("hidden");
    hatchingEggId = null;
    hatchTapCount = 0;
    eggHasHatched = false;

    if (eggVisual) {
      eggVisual.classList.remove("hidden", "egg-crack", "egg-stage-1", "egg-stage-2", "egg-stage-3");
      eggVisual.classList.add("egg-stage-0");
    }
    if (eggCharacter) {
      eggCharacter.classList.remove("visible");
      eggCharacter.textContent = "";
    }
    if (eggOverlayText) {
      eggOverlayText.textContent = "Tap to hatch your egg";
    }
    if (eggHatchBtn) {
      eggHatchBtn.textContent = "Tap to Hatch";
    }
  }

  startBtn.addEventListener("click", startQuest);
  completeBtn.addEventListener("click", function () {
    if (currentQuest) completeQuest();
  });

  if (eggHatchBtn) {
    eggHatchBtn.addEventListener("click", handleEggHatchTap);
  }
  if (eggOverlay) {
    eggOverlay.addEventListener("click", function (e) {
      if (e.target === eggOverlay && eggHasHatched) {
        closeEggOverlay();
      }
    });
  }

  initMap();

  navigator.geolocation.getCurrentPosition(
    function (pos) {
      setGpsStatus("active", "GPS ready");
      const lat = pos.coords.latitude;
      const lon = pos.coords.longitude;
      map.setView([lat, lon], 15);
      updatePlayerMarker(lat, lon);
      spawnCharacters(lat, lon);
      spawnEggLocations(lat, lon);
    },
    function (err) {
      if (err.code === 1) {
        setGpsStatus("error", "Tap to enable location");
      } else {
        setGpsStatus("error", "Location unavailable");
      }
      const fallbackLat = 40;
      const fallbackLon = 0;
      spawnCharacters(fallbackLat, fallbackLon);
      spawnEggLocations(fallbackLat, fallbackLon);
    },
    { enableHighAccuracy: true, maximumAge: 60000, timeout: 10000 }
  );

  updateStats();
  updateInventory();
})();
 
  • JFL
Reactions: 2s2f
  • JFL
Reactions: 2s2f and cellularsasquatch
JavaScript:
(function () {
  "use strict";

  const XP_PER_LEVEL = 100;
  const EGG_DISCOVER_RADIUS_METERS = 30;
  const HATCH_TAPS_REQUIRED = 5;

  const quests = [
    { id: 1, name: "First Steps", message: "Walk 500m to complete.", targetMeters: 500, xp: 25 },
    { id: 2, name: "Short Trek", message: "Walk 1km to complete.", targetMeters: 1000, xp: 40 },
    { id: 3, name: "The Long March", message: "Walk 2km to complete.", targetMeters: 2000, xp: 75 },
  ];

  const characters = [
    { id: "dragon", name: "Dragon", emoji: "🐉", rarity: "legendary", spawnWeight: 5 },
    { id: "star", name: "Star", emoji: "⭐", rarity: "common", spawnWeight: 60 },
    { id: "monkey", name: "Monkey", emoji: "🐒", rarity: "rare", spawnWeight: 35 },
  ];

  const TOTAL_SPAWN_WEIGHT = characters.reduce(function (sum, c) {
    return sum + c.spawnWeight;
  }, 0);

  function pickRandomCharacter() {
    let r = Math.random() * TOTAL_SPAWN_WEIGHT;
    for (let i = 0; i < characters.length; i++) {
      r -= characters[i].spawnWeight;
      if (r <= 0) return characters[i];
    }
    return characters[characters.length - 1];
  }

  function haversineMeters(lat1, lon1, lat2, lon2) {
    const R = 6371000;
    const dLat = ((lat2 - lat1) * Math.PI) / 180;
    const dLon = ((lon2 - lon1) * Math.PI) / 180;
    const a =
      Math.sin(dLat / 2) * Math.sin(dLat / 2) +
      Math.cos((lat1 * Math.PI) / 180) *
        Math.cos((lat2 * Math.PI) / 180) *
        Math.sin(dLon / 2) *
        Math.sin(dLon / 2);
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    return R * c;
  }

  function formatDistance(m) {
    if (m >= 1000) return (m / 1000).toFixed(1) + "km";
    return Math.round(m) + "m";
  }

  let totalXp = 0;
  let currentQuest = null;
  let questIndex = 0;
  let watchId = null;
  let startPos = null;
  let lastPos = null;
  let totalDistance = 0;

  let collectedCharacters = [];
  let eggs = [];
  let nextEggId = 1;

  let playerMarker = null;
  let characterMarkers = [];
  let eggMarkers = [];
  let eggLocations = [];
  let map = null;
  let playerLat = null;
  let playerLon = null;

  let hatchingEggId = null;
  let hatchTapCount = 0;
  let eggHasHatched = false;

  const startBtn = document.getElementById("start-btn");
  const completeBtn = document.getElementById("complete-btn");
  const questStatus = document.getElementById("quest-status");
  const logEntries = document.getElementById("log-entries");
  const logEmpty = document.getElementById("log-empty");
  const playerLevelEl = document.getElementById("player-level");
  const xpTextEl = document.getElementById("xp-text");
  const xpFillEl = document.getElementById("xp-fill");
  const gpsStatus = document.getElementById("gps-status");
  const gpsText = document.getElementById("gps-text");
  const distanceProgress = document.getElementById("distance-progress");
  const distanceFill = document.getElementById("distance-fill");
  const distanceText = document.getElementById("distance-text");
  const inventoryList = document.getElementById("inventory-list");
  const inventoryEmpty = document.getElementById("inventory-empty");
  const collectPopup = document.getElementById("collect-popup");
  const collectPopupText = document.getElementById("collect-popup-text");

  const eggOverlay = document.getElementById("egg-overlay");
  const eggVisual = document.getElementById("egg-visual");
  const eggCharacter = document.getElementById("egg-character");
  const eggOverlayText = document.getElementById("egg-overlay-text");
  const eggHatchBtn = document.getElementById("egg-hatch-btn");

  function initMap() {
    map = L.map("map", { zoomControl: false }).setView([20, 0], 2);
    L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
      attribution: "© OpenStreetMap",
      maxZoom: 19,
    }).addTo(map);
    L.control.zoom({ position: "topright" }).addTo(map);
  }

  function createCharacterIcon(char) {
    return L.divIcon({
      className: "character-marker",
      html:
        '<span style="font-size:28px;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.5));">' +
        char.emoji +
        "</span>",
      iconSize: [36, 36],
      iconAnchor: [18, 18],
    });
  }

  function createEggIcon() {
    return L.divIcon({
      className: "character-marker",
      html:
        '<span style="font-size:26px;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.6));">🥚</span>',
      iconSize: [32, 32],
      iconAnchor: [16, 16],
    });
  }

  function spawnCharacters(lat, lon) {
    characterMarkers.forEach(function (m) {
      if (map.hasLayer(m)) map.removeLayer(m);
    });
    characterMarkers = [];

    const count = 10;
    const radiusDeg = 0.004;

    for (let i = 0; i < count; i++) {
      const char = pickRandomCharacter();
      const offsetLat = (Math.random() - 0.5) * 2 * radiusDeg;
      const offsetLon = (Math.random() - 0.5) * 2 * radiusDeg;
      const mLat = lat + offsetLat;
      const mLon = lon + offsetLon;

      const icon = createCharacterIcon(char);
      const marker = L.marker([mLat, mLon], { icon: icon });
      marker.charData = char;
      marker.on("click", function () {
        collectCharacter(char, marker);
      });
      marker.addTo(map);
      characterMarkers.push(marker);
    }
  }

  function spawnEggLocations(lat, lon) {
    if (!map || eggLocations.length > 0) return;

    const count = 3;
    const radiusDeg = 0.003;
    eggLocations = [];

    for (let i = 0; i < count; i++) {
      const offsetLat = (Math.random() - 0.5) * 2 * radiusDeg;
      const offsetLon = (Math.random() - 0.5) * 2 * radiusDeg;
      eggLocations.push({
        id: "egg-loc-" + (i + 1),
        lat: lat + offsetLat,
        lon: lon + offsetLon,
        discovered: false,
        collected: false,
        marker: null,
      });
    }
  }

  function revealEggLocation(loc) {
    if (!map || loc.discovered || loc.collected) return;
    loc.discovered = true;

    const icon = createEggIcon();
    const marker = L.marker([loc.lat, loc.lon], { icon: icon });
    loc.marker = marker;
    eggMarkers.push(marker);

    marker.on("click", function () {
      collectEgg(loc, marker);
    });

    marker.addTo(map);

    collectPopupText.textContent = "You found a mysterious egg!";
    collectPopup.classList.remove("hidden");
    setTimeout(function () {
      collectPopup.classList.add("hidden");
    }, 2200);
  }

  function collectEgg(loc, marker) {
    if (loc.collected) return;
    loc.collected = true;

    if (marker && map && map.hasLayer(marker)) {
      map.removeLayer(marker);
    }
    eggMarkers = eggMarkers.filter(function (m) {
      return m !== marker;
    });

    eggs.push({ id: "egg-" + nextEggId++ });

    collectPopupText.textContent = "You collected an Egg!";
    collectPopup.classList.remove("hidden");
    setTimeout(function () {
      collectPopup.classList.add("hidden");
    }, 2200);

    updateInventory();
  }

  function checkEggDiscovery(lat, lon) {
    eggLocations.forEach(function (loc) {
      if (loc.collected || loc.discovered) return;
      const d = haversineMeters(lat, lon, loc.lat, loc.lon);
      if (d <= EGG_DISCOVER_RADIUS_METERS) {
        revealEggLocation(loc);
      }
    });
  }

  function collectCharacter(char, marker) {
    collectedCharacters.push(char);
    if (marker && map && map.hasLayer(marker)) map.removeLayer(marker);
    characterMarkers = characterMarkers.filter(function (m) {
      return m !== marker;
    });

    const centerLat = playerLat !== null ? playerLat : 40;
    const centerLon = playerLon !== null ? playerLon : 0;
    const newChar = pickRandomCharacter();
    const offsetLat = (Math.random() - 0.5) * 0.004;
    const offsetLon = (Math.random() - 0.5) * 0.004;
    const icon = createCharacterIcon(newChar);
    const newMarker = L.marker([centerLat + offsetLat, centerLon + offsetLon], { icon: icon });
    newMarker.charData = newChar;
    newMarker.on("click", function () {
      collectCharacter(newChar, newMarker);
    });
    newMarker.addTo(map);
    characterMarkers.push(newMarker);

    collectPopupText.textContent = "You collected a " + char.name + "!";
    collectPopup.classList.remove("hidden");
    setTimeout(function () {
      collectPopup.classList.add("hidden");
    }, 2200);

    updateInventory();
  }

  function updateInventory() {
    inventoryList.innerHTML = "";
    const hasEggs = eggs.length > 0;
    const hasChars = collectedCharacters.length > 0;

    if (!hasEggs && !hasChars) {
      inventoryEmpty.classList.remove("hidden");
      return;
    }

    inventoryEmpty.classList.add("hidden");

    if (hasEggs) {
      const header = document.createElement("li");
      header.className = "inventory-section";
      header.textContent = "Eggs";
      inventoryList.appendChild(header);

      eggs.forEach(function (egg) {
        const li = document.createElement("li");
        li.classList.add("inventory-egg");
        li.innerHTML =
          '<span class="char-emoji">🥚</span>' +
          '<span class="char-name">Mysterious Egg</span>' +
          '<span class="egg-status">Tap to hatch</span>';
        li.dataset.eggId = egg.id;
        li.addEventListener("click", function () {
          openEggOverlay(egg.id);
        });
        inventoryList.appendChild(li);
      });
    }

    if (hasChars) {
      const header = document.createElement("li");
      header.className = "inventory-section";
      header.textContent = "Characters";
      inventoryList.appendChild(header);

      collectedCharacters.forEach(function (char) {
        const li = document.createElement("li");
        li.innerHTML =
          '<span class="char-emoji">' +
          char.emoji +
          "</span>" +
          '<span class="char-name">' +
          char.name +
          "</span>" +
          '<span class="char-rarity ' +
          char.rarity +
          '">' +
          char.rarity +
          "</span>";
        inventoryList.appendChild(li);
      });
    }
  }

  function setGpsStatus(state, message) {
    gpsStatus.className = "gps-status " + state;
    gpsText.textContent = message;
  }

  function getLevel(xp) {
    return Math.floor(xp / XP_PER_LEVEL) + 1;
  }

  function getXpInCurrentLevel(xp) {
    return xp % XP_PER_LEVEL;
  }

  function updateStats() {
    const level = getLevel(totalXp);
    const xpInLevel = getXpInCurrentLevel(totalXp);
    const percent = (xpInLevel / XP_PER_LEVEL) * 100;

    playerLevelEl.textContent = level;
    xpTextEl.textContent = xpInLevel + " / " + XP_PER_LEVEL + " XP";
    xpFillEl.style.width = percent + "%";
  }

  function updatePlayerMarker(lat, lon) {
    playerLat = lat;
    playerLon = lon;
    if (playerMarker && map) {
      playerMarker.setLatLng([lat, lon]);
    } else if (map) {
      const icon = L.divIcon({
        className: "character-marker",
        html: '<span style="font-size:20px;">📍</span>',
        iconSize: [24, 24],
        iconAnchor: [12, 12],
      });
      playerMarker = L.marker([lat, lon], { icon: icon }).addTo(map);
    }
  }

  function stopWatching() {
    if (watchId !== null) {
      navigator.geolocation.clearWatch(watchId);
      watchId = null;
    }
    startPos = null;
    lastPos = null;
    totalDistance = 0;
  }

  function onPosition(pos) {
    const lat = pos.coords.latitude;
    const lon = pos.coords.longitude;

    if (!gpsStatus.classList.contains("active")) {
      setGpsStatus("active", "GPS active");
    }

    if (playerLat === null) {
      map.setView([lat, lon], 15);
      updatePlayerMarker(lat, lon);
      spawnCharacters(lat, lon);
      spawnEggLocations(lat, lon);
    } else {
      updatePlayerMarker(lat, lon);
    }

    checkEggDiscovery(lat, lon);

    if (!currentQuest || !startPos) return;

    if (!lastPos) {
      lastPos = { lat: lat, lon: lon };
      return;
    }

    const seg = haversineMeters(lastPos.lat, lastPos.lon, lat, lon);
    if (seg > 3) {
      totalDistance += seg;
      lastPos = { lat: lat, lon: lon };
      updateDistanceUI();

      if (totalDistance >= currentQuest.targetMeters) {
        completeQuest();
      }
    }
  }

  function updateDistanceUI() {
    const target = currentQuest.targetMeters;
    const pct = Math.min(100, (totalDistance / target) * 100);
    distanceFill.style.width = pct + "%";
    distanceText.textContent = formatDistance(totalDistance) + " / " + formatDistance(target);
  }

  function startQuest() {
    if (!navigator.geolocation) {
      questStatus.textContent = "GPS is not supported on this device.";
      return;
    }

    currentQuest = quests[questIndex % quests.length];
    questIndex += 1;

    questStatus.textContent = currentQuest.name + " — " + currentQuest.message;
    questStatus.classList.add("active");

    distanceProgress.classList.remove("hidden");
    distanceFill.style.width = "0%";
    distanceText.textContent = "0m / " + formatDistance(currentQuest.targetMeters);

    const entry = document.createElement("li");
    entry.textContent = "Started: " + currentQuest.name + ". " + currentQuest.message;
    logEntries.insertBefore(entry, logEntries.firstChild);

    startBtn.textContent = "Start Next Quest";
    startBtn.disabled = true;
    completeBtn.disabled = false;

    if (logEmpty) logEmpty.classList.add("hidden");

    totalDistance = 0;
    lastPos = null;

    navigator.geolocation.getCurrentPosition(
      function (pos) {
        startPos = { lat: pos.coords.latitude, lon: pos.coords.longitude };
        lastPos = startPos;
        if (map && playerLat === null) {
          map.setView([startPos.lat, startPos.lon], 15);
          updatePlayerMarker(startPos.lat, startPos.lon);
          spawnCharacters(startPos.lat, startPos.lon);
          spawnEggLocations(startPos.lat, startPos.lon);
        }
        watchId = navigator.geolocation.watchPosition(onPosition, onGpsError, {
          enableHighAccuracy: true,
          maximumAge: 5000,
          timeout: 10000,
        });
      },
      onGpsError,
      { enableHighAccuracy: true, maximumAge: 10000, timeout: 15000 }
    );
  }

  function onGpsError(err) {
    if (err.code === 1) {
      setGpsStatus("error", "Location denied");
    } else if (err.code === 2) {
      setGpsStatus("error", "Location unavailable");
    } else {
      setGpsStatus("error", "Location error");
    }
  }

  function completeQuest() {
    if (!currentQuest) return;

    stopWatching();

    totalXp += currentQuest.xp;
    const prevXpInLevel = getXpInCurrentLevel(totalXp - currentQuest.xp);
    const leveledUp = getXpInCurrentLevel(totalXp) < prevXpInLevel;

    const entry = document.createElement("li");
    entry.classList.add("completed");
    entry.textContent =
      "Completed: " + currentQuest.name + " (" + formatDistance(totalDistance) + ") (+" + currentQuest.xp + " XP)";
    logEntries.insertBefore(entry, logEntries.firstChild);

    currentQuest = null;
    questStatus.textContent = "No active quest. Start one and start walking!";
    questStatus.classList.remove("active");

    distanceProgress.classList.add("hidden");

    startBtn.textContent = "Start Quest";
    startBtn.disabled = false;
    completeBtn.disabled = true;

    updateStats();

    if (leveledUp) {
      playerLevelEl.classList.add("level-up");
      setTimeout(function () {
        playerLevelEl.classList.remove("level-up");
      }, 600);
    }
  }

  function setEggStage(stage) {
    if (!eggVisual) return;
    eggVisual.classList.remove("egg-stage-0", "egg-stage-1", "egg-stage-2", "egg-stage-3", "egg-crack");
    eggVisual.classList.add("egg-stage-" + stage);
  }

  function openEggOverlay(eggId) {
    if (!eggOverlay) return;
    const egg = eggs.find(function (e) {
      return e.id === eggId;
    });
    if (!egg) return;

    hatchingEggId = eggId;
    hatchTapCount = 0;
    eggHasHatched = false;

    eggOverlay.classList.remove("hidden");
    eggOverlayText.textContent = "Tap to hatch your egg";
    eggHatchBtn.textContent = "Tap to Hatch";

    if (eggCharacter) {
      eggCharacter.textContent = "";
      eggCharacter.classList.remove("visible");
    }
    if (eggVisual) {
      eggVisual.classList.remove("hidden");
      setEggStage(0);
    }
  }

  function handleEggHatchTap() {
    if (!hatchingEggId) return;

    if (!eggHasHatched) {
      hatchTapCount += 1;
      if (eggVisual) {
        eggVisual.classList.add("egg-crack");
        setTimeout(function () {
          eggVisual.classList.remove("egg-crack");
        }, 350);
      }

      const stage = Math.min(3, hatchTapCount);
      setEggStage(stage);

      if (hatchTapCount >= HATCH_TAPS_REQUIRED) {
        hatchEgg();
      }
    } else {
      closeEggOverlay();
    }
  }

  function hatchEgg() {
    if (!hatchingEggId) return;

    eggHasHatched = true;

    const reward = pickRandomCharacter();
    collectedCharacters.push(reward);

    eggs = eggs.filter(function (e) {
      return e.id !== hatchingEggId;
    });
    hatchingEggId = null;

    if (eggVisual) {
      eggVisual.classList.add("hidden");
    }
    if (eggCharacter) {
      eggCharacter.textContent = reward.emoji;
      eggCharacter.classList.add("visible");
    }

    eggOverlayText.textContent = "Your egg hatched into a " + reward.name + "!";
    eggHatchBtn.textContent = "Close";

    updateInventory();
  }

  function closeEggOverlay() {
    if (!eggOverlay) return;
    eggOverlay.classList.add("hidden");
    hatchingEggId = null;
    hatchTapCount = 0;
    eggHasHatched = false;

    if (eggVisual) {
      eggVisual.classList.remove("hidden", "egg-crack", "egg-stage-1", "egg-stage-2", "egg-stage-3");
      eggVisual.classList.add("egg-stage-0");
    }
    if (eggCharacter) {
      eggCharacter.classList.remove("visible");
      eggCharacter.textContent = "";
    }
    if (eggOverlayText) {
      eggOverlayText.textContent = "Tap to hatch your egg";
    }
    if (eggHatchBtn) {
      eggHatchBtn.textContent = "Tap to Hatch";
    }
  }

  startBtn.addEventListener("click", startQuest);
  completeBtn.addEventListener("click", function () {
    if (currentQuest) completeQuest();
  });

  if (eggHatchBtn) {
    eggHatchBtn.addEventListener("click", handleEggHatchTap);
  }
  if (eggOverlay) {
    eggOverlay.addEventListener("click", function (e) {
      if (e.target === eggOverlay && eggHasHatched) {
        closeEggOverlay();
      }
    });
  }

  initMap();

  navigator.geolocation.getCurrentPosition(
    function (pos) {
      setGpsStatus("active", "GPS ready");
      const lat = pos.coords.latitude;
      const lon = pos.coords.longitude;
      map.setView([lat, lon], 15);
      updatePlayerMarker(lat, lon);
      spawnCharacters(lat, lon);
      spawnEggLocations(lat, lon);
    },
    function (err) {
      if (err.code === 1) {
        setGpsStatus("error", "Tap to enable location");
      } else {
        setGpsStatus("error", "Location unavailable");
      }
      const fallbackLat = 40;
      const fallbackLon = 0;
      spawnCharacters(fallbackLat, fallbackLon);
      spawnEggLocations(fallbackLat, fallbackLon);
    },
    { enableHighAccuracy: true, maximumAge: 60000, timeout: 10000 }
  );

  updateStats();
  updateInventory();
})();
over for me atp:feelswhy:
 
  • JFL
Reactions: 2s2f
over for me atp:feelswhy:
OctaRealm is an AI-powered UFC fight prediction platform that analyzes fighter statistics and upcoming events to generate probability-based predictions and insights. With a futuristic dashboard design, it allows users to explore fight cards, compare fighters, and visualize predictions in real time.
 
  • JFL
Reactions: 2s2f
don't have one
you do :lul:

1783546906535
 
  • JFL
Reactions: 2s2f and cellularsasquatch
OctaRealm is an AI-powered UFC fight prediction platform that analyzes fighter statistics and upcoming events to generate probability-based predictions and insights. With a futuristic dashboard design, it allows users to explore fight cards, compare fighters, and visualize predictions in real time.
im actually curious where do you guys find shit like that, mirin
 
  • JFL
Reactions: 2s2f and vigor
  • JFL
Reactions: 2s2f
i wanna try this on that other dude with his email as his name
he keeps grr reacting me
deserved
 
  • +1
Reactions: 2s2f
i wanna try this on that other dude with his email as his name
he keeps grr reacting me
deserved
this guy pictures and everything leaked
 
  • +1
Reactions: 2s2f and vigor
i told him it was peptides so he wouldn’t get mad but then it occurred to him to inject it and he injected it in his booty like most doctors do And now he has filler in his booty and he thick but his furious how can i reverse it? is it over ?
Over ye
 
  • +1
Reactions: vigor
  • +1
Reactions: 2s2f
1783547291490
 
  • +1
Reactions: 2s2f, tijanmuharemovic4@g and vigor
i told him it was peptides so he wouldn’t get mad but then it occurred to him to inject it and he injected it in his booty like most doctors do And now he has filler in his booty and he thick but his furious how can i reverse it? is it over ?
Prolly over I think
 
  • +1
Reactions: sample and 2s2f
i don’t take shit from manlets and new gens u little bitch
bro was gonna type something beforehand. cope you ugly retard

also every post u made is engagement bait bc u have nobody irl to satisfy your lack of social interaction

@Mr. Squarepants peep
 
  • +1
  • JFL
Reactions: Mr. Squarepants and 2s2f
he has much better opsec than you, nothing there but someone also made him a pornhub account :lul:
I got the best opsec here :ReallyMad::ReallyMad:
 
  • Love it
  • +1
Reactions: vigor and sample
Wow you have a whole collection of these larps
 
bro was gonna type something beforehand. cope you ugly retard

also every post u made is engagement bait bc u have nobody irl to satisfy your lack of social interaction

@Mr. Squarepants pee
bro was gonna type something beforehand. cope you ugly retard

also every post u made is engagement bait bc u have nobody irl to satisfy your lack of social interaction

@Mr. Squarepants peep

bro was gonna type something beforehand. cope you ugly retard

also every post u made is engagement bait bc u have nobody irl to satisfy your lack of social interaction

@Mr. Squarepants peep
sample. i sincerely apologize for what i said… im sorry i love u❤️
 

Similar threads

Boyoshutup
Replies
7
Views
33
Boyoshutup
Boyoshutup
cellularsasquatch
Replies
4
Views
39
H72
H72
cellularsasquatch
Replies
11
Views
81
cellularsasquatch
cellularsasquatch
cellularsasquatch
Replies
24
Views
101
imjustcookedfr
imjustcookedfr
flowiza
Replies
10
Views
96
flowiza
flowiza

Users who are viewing this thread

  • cheekbonesforlife
  • MtoLooxs
  • God_Fearing_Virgin
Back
Top