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, bold=True) small_font = pygame.font.SysFont("Arial", 26) # CREATE ALL FUGGLERS all_fugglers = [] leader = Fuggler("Original Prototype #1", "The Beginning", is_leader=True) all_fugglers.append(leader) # Spawn Fugglers from every country for country, _ in COUNTRIES.items(): for _ in range(35): name = random.choice(FUGGLER_NAMES[1:]) all_fugglers.append(Fuggler(name, country)) game_state = "intro" # intro -> playing while True: screen.fill((230, 240, 250)) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Click START if event.type == pygame.MOUSEBUTTONDOWN and game_state == "intro": mx, my = pygame.mouse.get_pos() if 220 < mx < 580 and 340 < my < 420: game_state = "playing" # 📺 INTRO SCREEN if game_state == "intro": t1 = big_font.render("AXEL'S FUGGLER GAME", True, (190, 0, 0)) t2 = big_font.render("🌍 WORLD EDITION 🌍", True, (0, 110, 200)) d1 = small_font.render("YOU ARE THE FIRST FUGGLER EVER!", True, (0,0,0)) d2 = small_font.render("EVERY FUGGLER FROM EVERY COUNTRY FOLLOWS YOU!", True, (0,0,0)) d3 = small_font.render("Walk • Run • Poop • Fart • Puke • Pee", True, (130,0,0)) screen.blit(t1, (120, 130)) screen.blit(t2, (140, 200)) screen.blit(d1, (115, 270)) screen.blit(d2, (85, 310)) screen.blit(d3, (130, 350)) # START BUTTON pygame.draw.rect(screen, (0, 170, 0), (220, 340, 360, 80), border_radius=15) start_text = big_font.render("START", True, (255,255,255)) screen.blit(start_text, (345, 350)) # 🎮 GAMEPLAY elif game_state == "playing": keys = pygame.key.get_pressed() # Update + Draw all for f in all_fugglers: f.update(leader.x, leader.y, keys) f.draw(screen) # Controls text help_text = small_font.render("Arrows = Move | Shift = Run | P/F/U/E = Actions", True, (0,0,0)) screen.blit(help_text, (12, 12)) pygame.display.flip() clock.tick(30) if __name__ == "__main__": main()