import pygame import random import sys # -------------------------- # 🌍 COUNTRIES + FUGGLER COUNTS # -------------------------- COUNTRIES = { "United Kingdom": 125000, "Ireland": 18000, "USA": 210000, "Canada": 42000, "Australia": 38000, "Germany": 29000, "France": 26000, "Japan": 55000, "China": 72000, "Brazil": 36000, "South Africa": 17000 } # -------------------------- # 🧟 ALL FUGGLER NAMES # -------------------------- FUGGLER_NAMES = [ "Original Prototype #1", "Wide Eyed Weirdo", "Two-Faced Freak", "Rabid Rabbit", "Oogah Boogah", "Lady Gugga", "Grin Grin", "Gaptooth McGoo", "Grumpy Grumps", "Sasquoosh", "Sir Belch", "Suspicious Fox", "Rainbow Rascal", "Munch Munch", "Tiny Terror", "Indecisive Monster", "Reek-O", "Fiery Fluff", "Inferno", "Stinkface", "Snortle Bork", "Slobber Snout", "Wart Hog", "Dizzy Dino", "Squawk Squawk", "Loop Loop", "Gloop Gloop", "Chomp Chomp", "Burp Burp", "Snot Rocket", "Grim Grin" ] # -------------------------- # 🎮 FUGGLER CLASS # -------------------------- class Fuggler: def __init__(self, name, country, is_leader=False): self.name = name self.country = country self.is_leader = is_leader self.x = 400 if is_leader else random.randint(-200, 1000) self.y = 300 if is_leader else random.randint(-200, 800) self.speed = 2.8 if is_leader else random.uniform(1.3, 2.1) self.direction = "forward" self.looking = "forward" self.moving = True self.stopped = False self.size = 48 if is_leader else random.randint(24, 40) self.color = (220, 20, 20) if is_leader else ( random.randint(40,255), random.randint(40,255), random.randint(40,255) ) self.action = "walking" self.timer = 0 # Movement def walk_left(self): if not self.stopped: self.direction = "left" self.x -= self.speed def walk_right(self): if not self.stopped: self.direction = "right" self.x += self.speed def walk_up(self): if not self.stopped: self.direction = "up" self.y -= self.speed def walk_down(self): if not self.stopped: self.direction = "down" self.y += self.speed def run(self): if not self.stopped: s = self.speed * 1.8 if self.direction == "left": self.x -= s elif self.direction == "right": self.x += s elif self.direction == "up": self.y -= s elif self.direction == "down": self.y += s def stop(self): self.stopped = True self.moving = False # Look def look_left(self): self.looking = "left" def look_right(self): self.looking = "right" def look_up(self): self.looking = "up" def look_down(self): self.looking = "down" def look_front(self): self.looking = "front" # Gross actions def poop(self): self.action = "pooping" def fart(self): self.action = "farting" def puke(self): self.action = "puking" def pee(self): self.action = "peeing" def burp(self): self.action = "burping" # Update def update(self, leader_x, leader_y, keys): self.timer += 1 # YOU CONTROL LEADER if self.is_leader: if keys[pygame.K_LEFT]: self.walk_left() if keys[pygame.K_RIGHT]: self.walk_right() if keys[pygame.K_UP]: self.walk_up() if keys[pygame.K_DOWN]: self.walk_down() if keys[pygame.K_LSHIFT]: self.run() if keys[pygame.K_SPACE]: self.stop() if keys[pygame.K_1]: self.look_left() if keys[pygame.K_2]: self.look_right() if keys[pygame.K_3]: self.look_up() if keys[pygame.K_4]: self.look_down() if keys[pygame.K_5]: self.look_front() if keys[pygame.K_p]: self.poop() if keys[pygame.K_f]: self.fart() if keys[pygame.K_u]: self.puke() if keys[pygame.K_e]: self.pee() if keys[pygame.K_b]: self.burp() # OTHERS FOLLOW YOU else: dx = leader_x - self.x dy = leader_y - self.y dist = (dx**2 + dy**2)**0.5 if dist > 70: self.x += (dx / dist) * self.speed self.y += (dy / dist) * self.speed # Random gross stuff if self.timer > random.randint(70, 200): self.timer = 0 r = random.randint(1,5) if r == 1: self.poop() elif r == 2: self.fart() elif r == 3: self.puke() elif r == 4: self.pee() elif r == 5: self.burp() # Keep in screen self.x = max(10, min(790, self.x)) self.y = max(10, min(590, self.y)) # Draw def draw(self, screen): pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), self.size) # Eyes ox, oy = 0,0 if self.looking == "left": ox=-6 elif self.looking == "right": ox=6 elif self.looking == "up": oy=-6 elif self.looking == "down": oy=6 pygame.draw.circle(screen, (255,255,255), (int(self.x-5+ox), int(self.y-4+oy)), 4) pygame.draw.circle(screen, (255,255,255), (int(self.x+5+ox), int(self.y-4+oy)), 4) # Mouth / Action if self.action in ["pooping","farting","puking","peeing"]: pygame.draw.arc(screen, (0,0,0), [self.x-8, self.y, 16, 10], 3.14, 6.28, 3) else: pygame.draw.arc(screen, (0,0,0), [self.x-8, self.y+3, 16, 10], 0, 3.14, 3) # -------------------------- # 🚀 MAIN GAME # -------------------------- def main(): pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("AXEL'S FUGGLER WORLD") clock = pygame.time.Clock() big_font = pygame.font.SysFont("Arial", 50