From 77cab1382754ac01554a078e44648dda2678429b Mon Sep 17 00:00:00 2001 From: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com> Date: Fri, 5 Sep 2025 23:20:37 +0200 Subject: [PATCH] ArchipIDLE: Remove game #5422 --- README.md | 1 - docs/CODEOWNERS | 3 - setup.py | 1 - worlds/archipidle/Items.py | 315 ------------------------ worlds/archipidle/Rules.py | 28 --- worlds/archipidle/__init__.py | 128 ---------- worlds/archipidle/docs/en_ArchipIDLE.md | 13 - worlds/archipidle/docs/guide_en.md | 12 - worlds/archipidle/docs/guide_fr.md | 11 - 9 files changed, 512 deletions(-) delete mode 100644 worlds/archipidle/Items.py delete mode 100644 worlds/archipidle/Rules.py delete mode 100644 worlds/archipidle/__init__.py delete mode 100644 worlds/archipidle/docs/en_ArchipIDLE.md delete mode 100644 worlds/archipidle/docs/guide_en.md delete mode 100644 worlds/archipidle/docs/guide_fr.md diff --git a/README.md b/README.md index 4a0aa614..0431049b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,6 @@ Currently, the following games are supported: * Meritous * Super Metroid/Link to the Past combo randomizer (SMZ3) * ChecksFinder -* ArchipIDLE * Hollow Knight * The Witness * Sonic Adventure 2: Battle diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS index 44eb830b..d0de8332 100644 --- a/docs/CODEOWNERS +++ b/docs/CODEOWNERS @@ -21,9 +21,6 @@ # Aquaria /worlds/aquaria/ @tioui -# ArchipIDLE -/worlds/archipidle/ @LegendaryLinux - # Blasphemous /worlds/blasphemous/ @TRPG0 diff --git a/setup.py b/setup.py index 01342e4e..3f25ade7 100644 --- a/setup.py +++ b/setup.py @@ -65,7 +65,6 @@ from Cython.Build import cythonize non_apworlds: set[str] = { "A Link to the Past", "Adventure", - "ArchipIDLE", "Archipelago", "Lufia II Ancient Cave", "Meritous", diff --git a/worlds/archipidle/Items.py b/worlds/archipidle/Items.py deleted file mode 100644 index 94665631..00000000 --- a/worlds/archipidle/Items.py +++ /dev/null @@ -1,315 +0,0 @@ -item_table = ( - 'An Old GeoCities Profile', - 'Very Funny Joke', - 'Motivational Video', - 'Staples Easy Button', - 'One Million Dollars', - 'Replica Master Sword', - 'VHS Copy of Jurassic Park', - '32GB USB Drive', - 'Pocket Protector', - 'Leftover Parts from IKEA Furniture', - 'Half-Empty Ink Cartridge for a Printer', - 'Watch Battery', - 'Towel', - 'Scarf', - '2012 Magic the Gathering Core Set Starter Box', - 'Poke\'mon Booster Pack', - 'USB Speakers', - 'Eco-Friendly Spork', - 'Cheeseburger', - 'Brand New Car', - 'Hunting Knife', - 'Zippo Lighter', - 'Red Shirt', - 'One-Up Mushroom', - 'Nokia N-GAGE', - '2-Liter of Sprite', - 'Free trial of the critically acclaimed MMORPG Final Fantasy XIV, including the entirety of A Realm Reborn and the award winning Heavensward and Stormblood expansions up to level 70 with no restrictions on playtime!', - 'Can of Compressed Air', - 'Striped Kitten', - 'USB Power Adapter', - 'Fortune Cookie', - 'Nintendo Power Glove', - 'The Lampshade of No Real Significance', - 'Kneepads of Allure', - 'Get Out of Jail Free Card', - 'Box Set of Stargate SG-1 Season 4', - 'The Missing Left Sock', - 'Poster Tube', - 'Electronic Picture Frame', - 'Bottle of Shampoo', - 'Your Mission, Should You Choose To Accept It', - 'Fanny Pack', - 'Robocop T-Shirt', - 'Suspiciously Small Monocle', - 'Table Saw', - 'Cookies and Cream Milkshake', - 'Deflated Accordion', - 'Grandma\'s Homemade Pie', - 'Invisible Lego on the Floor', - 'Pitfall Trap', - 'Flathead Screwdriver', - 'Leftover Pizza', - 'Voodoo Doll that Looks Like You', - 'Pink Shoelaces', - 'Half a Bottle of Scotch', - 'Reminder Not to Forget Aginah', - 'Medicine Ball', - 'Yoga Mat', - 'Chocolate Orange', - 'Old Concert Tickets', - 'The Pick of Destiny', - 'McGuffin', - 'Just a Regular McMuffin', - '34 Tacos', - 'Duct Tape', - 'Copy of Untitled Goose Game', - 'Partially Used Bed Bath & Beyond Gift Card', - 'Mostly Popped Bubble Wrap', - 'Expired Driver\'s License', - 'The Look, You Know the One', - 'Transformers Lunch Box', - 'MP3 Player', - 'Dry Sharpie', - 'Chalkboard Eraser', - 'Overhead Projector', - 'Physical Copy of the Japanese 1.0 Link to the Past', - 'Collectable Action Figure', - 'Box Set of The Lord of the Rings Books', - 'Lite-Bright', - 'Stories from the Good-Old-Days', - 'Un-Reproducable Bug Reports', - 'Autographed Copy of Shaq-Fu', - 'Game-Winning Baseball', - 'Portable Battery Bank', - 'Blockbuster Membership Card', - 'Offensive Bumper Sticker', - 'Last Sunday\'s Crossword Puzzle', - 'Rubik\'s Cube', - 'Your First Grey Hair', - 'Embarrassing Childhood Photo', - 'Abandoned Sphere One Check', - 'The Internet', - 'Late-Night Cartoons', - 'The Correct Usage of a Semicolon', - 'Microsoft Windows 95 Resource Kit', - 'Car-Phone', - 'Walkman Radio', - 'Relevant XKCD Comic', - 'Razor Scooter', - 'Set of Beyblades', - 'Box of Pogs', - 'Beanie-Baby Collection', - 'Laser Tag Gun', - 'Radio Controlled Car', - 'Boogie Board', - 'Air Jordans', - 'Rubber Duckie', - 'The Last Cookie in the Cookie Jar', - 'Tin-Foil Hat', - 'Button-Up Shirt', - 'Designer Brand Bag', - 'Trapper Keeper', - 'Fake Moustache', - 'Colored Pencils', - 'Pair of 3D Glasses', - 'Pair of Movie Tickets', - 'Refrigerator Magnets', - 'NASCAR Dinner Plates', - 'The Final Boss', - 'Unskippable Cutscenes', - '24 Rolls of Toilet Paper', - 'Canned Soup', - 'Warm Blanket', - '3D Printer', - 'Jetpack', - 'Hoverboard', - 'Joycons with No Drift', - 'Double Rainbow', - 'Ping Pong Ball', - 'Area 51 Arcade Cabinet', - 'Elephant in the Room', - 'The Pink Panther', - 'Denim Shorts', - 'Tennis Racket', - 'Collection of Stuffed Animals', - 'Old Cell Phone', - 'Nintendo Virtual Boy', - 'Box of 5.25 Inch Floppy Disks', - 'Bag of Miscellaneous Wires', - 'Garden Shovel', - 'Leather Gloves', - 'Knife of +9 VS Ogres', - 'Old, Smelly Cheese', - 'Linksys BEFSR41 Router', - 'Ethernet Cables for a LAN Party', - 'Mechanical Pencil', - 'Book of Graph Paper', - '300 Sheets of Printer Paper', - 'One AAA Battery', - 'Box of Old Game Controllers', - 'Sega Dreamcast', - 'Mario\'s Overalls', - 'Betamax Player', - 'Stray Lego', - 'Chocolate Chip Pancakes', - 'Two Blueberry Muffins', - 'Nintendo 64 Controller with a Perfect Thumbstick', - 'Cuckoo Crossing the Road', - 'One Eyed, One Horned, Flying Purple People-Eater', - 'Love Potion Number Nine', - 'Wireless Headphones', - 'Festive Keychain', - 'Bundle of Twisted Cables', - 'Plank of Wood', - 'Broken Ant Farm', - 'Thirty-six American Dollars', - 'Can of Shaving Cream', - 'Blue Hair Dye', - 'Mug Engraved with the AP Logo', - 'Tube of Toothpaste', - 'Album of Elevator Music', - 'Headlight Fluid', - 'Tickets to the Renaissance Faire', - 'Bag of Golf Balls', - 'Box of Packing Peanuts', - 'Bottle of Peanut Butter', - 'Breath of the Wild Cookbook', - 'Stardew Valley Cookbook', - 'Thirteen Angry Chickens', - 'Bowl of Cereal', - 'Rubber Snake', - 'Stale Sunflower Seeds', - 'Alarm Clock Without a Snooze Button', - 'Wet Pineapple', - 'Set of Scented Candles', - 'Adorable Stuffed Animal', - 'The Broodwitch', - 'Old Photo Album', - 'Trade Quest Item', - 'Pair of Fancy Boots', - 'Shoddy Pickaxe', - 'Adventurer\'s Sword', - 'Cute Puppy', - 'Box of Matches', - 'Set of Allen Wrenches', - 'Glass of Water', - 'Magic Shaggy Carpet', - 'Macaroni and Cheese', - 'Chocolate Chip Cookie Dough Ice Cream', - 'Fresh Strawberries', - 'Delicious Tacos', - 'The Krabby Patty Recipe', - 'Map to Waldo\'s Location', - 'Stray Cat', - 'Ham and Cheese Sandwich', - 'DVD Player', - 'Motorcycle Helmet', - 'Fake Flowers', - '6-Pack of Sponges', - 'Heated Pants', - 'Empty Glass Bottle', - 'Brown Paper Bag', - 'Model Train Set', - 'TV Remote', - 'RC Car', - 'Super Soaker 9000', - 'Giant Sunglasses', - 'World\'s Smallest Violin', - 'Pile of Fresh Warm Laundry', - 'Half-Empty Ice Cube Tray', - 'Bob Ross Afro Wig', - 'Empty Cardboard Box', - 'Packet of Soy Sauce', - 'Solutions to a Math Test', - 'Pencil Eraser', - 'The Great Pumpkin', - 'Very Expensive Toaster', - 'Pack of Colored Sharpies', - 'Bag of Chocolate Chips', - 'Grandma\'s Homemade Cookies', - 'Collection of Bottle Caps', - 'Pack of Playing Cards', - 'Boom Box', - 'Toy Sail Boat', - 'Smooth Nail File', - 'Colored Chalk', - 'Missing Button', - 'Rubber Band Ball', - 'Joystick', - 'Galaga Arcade Cabinet', - 'Anime Mouse Pad', - 'Orange and Yellow Glow Sticks', - 'Odd Bookmark', - 'Stray Dice', - 'Tooth Picks', - 'Dirty Dishes', - 'Poke\'mon Card Game Rule Book (Gen 1)', - 'Salt Shaker', - 'Digital Thermometer', - 'Infinite Improbability Drive', - 'Fire Extinguisher', - 'Beeping Smoke Alarm', - 'Greasy Spatula', - 'Progressive Auto Insurance', - 'Mace Windu\'s Purple Lightsaber', - 'An Old Fixer-Upper', - 'Gamer Chair', - 'Comfortable Reclining Chair', - 'Shirt Covered in Dog Hair', - 'Angry Praying Mantis', - 'Card Games on Motorcycles', - 'Trucker Hat', - 'The DK Rap', - 'Three Great Balls', - 'Some Very Sus Behavior', - 'Glass of Orange Juice', - 'Turkey Bacon', - 'Bald Barbie Doll', - 'Developer Commentary', - 'Subscription to Nintendo Power Magazine', - 'DeLorean Time Machine', - 'Unkillable Cockroach', - 'Dungeons & Dragons Rulebook', - 'Boxed Copy of Quest 64', - 'James Bond\'s Gadget Wristwatch', - 'Tube of Go-Gurt', - 'Digital Watch', - 'Laser Pointer', - 'The Secret Cow Level', - 'AOL Free Trial CD-ROM', - 'E.T. for Atari 2600', - 'Season 2 of Knight Rider', - 'Spam E-Mails', - 'Half-Life 3 Release Date', - 'Source Code of Jurassic Park', - 'Moldy Cheese', - 'Comic Book Collection', - 'Hardcover Copy of Scott Pilgrim VS the World', - 'Old Gym Shorts', - 'Very Cool Sunglasses', - 'Your High School Yearbook Picture', - 'Written Invitation to Prom', - 'The Star Wars Holiday Special', - 'Oil Change Coupon', - 'Finger Guns', - 'Box of Tabletop Games', - 'Sock Puppets', - 'The Dog of Wisdom', - 'Surprised Chipmunk', - 'Stonks', - 'A Shrubbery', - 'Roomba with a Knife', - 'Wet Cat', - 'The missing moderator, Frostwares', - '1,793 Crossbows', - 'Holographic First Edition Charizard (Gen 1)', - 'VR Headset', - 'Archipelago 1.0 Release Date', - 'Strand of Galadriel\'s Hair', - 'Can of Meow-Mix', - 'Shake-Weight', - 'DVD Collection of Billy Mays Infomercials', - 'Old CD Key', -) diff --git a/worlds/archipidle/Rules.py b/worlds/archipidle/Rules.py deleted file mode 100644 index 2cc6220c..00000000 --- a/worlds/archipidle/Rules.py +++ /dev/null @@ -1,28 +0,0 @@ -from BaseClasses import MultiWorld -from worlds.AutoWorld import LogicMixin - - -class ArchipIDLELogic(LogicMixin): - def _archipidle_location_is_accessible(self, player_id, items_required): - return sum(self.prog_items[player_id].values()) >= items_required - - -def set_rules(world: MultiWorld, player: int): - for i in range(16, 31): - world.get_location(f"IDLE item number {i}", player).access_rule = lambda \ - state: state._archipidle_location_is_accessible(player, 4) - - for i in range(31, 51): - world.get_location(f"IDLE item number {i}", player).access_rule = lambda \ - state: state._archipidle_location_is_accessible(player, 10) - - for i in range(51, 101): - world.get_location(f"IDLE item number {i}", player).access_rule = lambda \ - state: state._archipidle_location_is_accessible(player, 20) - - for i in range(101, 201): - world.get_location(f"IDLE item number {i}", player).access_rule = lambda \ - state: state._archipidle_location_is_accessible(player, 40) - - world.completion_condition[player] =\ - lambda state: state.can_reach(world.get_location("IDLE item number 200", player), "Location", player) diff --git a/worlds/archipidle/__init__.py b/worlds/archipidle/__init__.py deleted file mode 100644 index f4345444..00000000 --- a/worlds/archipidle/__init__.py +++ /dev/null @@ -1,128 +0,0 @@ -from BaseClasses import Item, MultiWorld, Region, Location, Entrance, Tutorial, ItemClassification -from worlds.AutoWorld import World, WebWorld -from datetime import datetime -from .Items import item_table -from .Rules import set_rules - - -class ArchipIDLEWebWorld(WebWorld): - theme = 'partyTime' - tutorials = [ - Tutorial( - tutorial_name='Setup Guide', - description='A guide to playing Archipidle', - language='English', - file_name='guide_en.md', - link='guide/en', - authors=['Farrak Kilhn'] - ), - Tutorial( - tutorial_name='Guide d installation', - description='Un guide pour jouer à Archipidle', - language='Français', - file_name='guide_fr.md', - link='guide/fr', - authors=['TheLynk'] - ) - ] - - -class ArchipIDLEWorld(World): - """ - An idle game which sends a check every thirty to sixty seconds, up to two hundred checks. - """ - game = "ArchipIDLE" - topology_present = False - hidden = (datetime.now().month != 4) # ArchipIDLE is only visible during April - web = ArchipIDLEWebWorld() - - item_name_to_id = {} - start_id = 9000 - for item in item_table: - item_name_to_id[item] = start_id - start_id += 1 - - location_name_to_id = {} - start_id = 9000 - for i in range(1, 201): - location_name_to_id[f"IDLE item number {i}"] = start_id - start_id += 1 - - def set_rules(self): - set_rules(self.multiworld, self.player) - - def create_item(self, name: str) -> Item: - return Item(name, ItemClassification.progression, self.item_name_to_id[name], self.player) - - def create_items(self): - item_pool = [ - ArchipIDLEItem( - item_table[0], - ItemClassification.progression, - self.item_name_to_id[item_table[0]], - self.player - ) - ] - - for i in range(40): - item_pool.append(ArchipIDLEItem( - item_table[1], - ItemClassification.progression, - self.item_name_to_id[item_table[1]], - self.player - )) - - for i in range(40): - item_pool.append(ArchipIDLEItem( - item_table[2], - ItemClassification.filler, - self.item_name_to_id[item_table[2]], - self.player - )) - - item_table_copy = list(item_table[3:]) - self.random.shuffle(item_table_copy) - for i in range(119): - item_pool.append(ArchipIDLEItem( - item_table_copy[i], - ItemClassification.progression if i < 9 else ItemClassification.filler, - self.item_name_to_id[item_table_copy[i]], - self.player - )) - - self.multiworld.itempool += item_pool - - def create_regions(self): - self.multiworld.regions += [ - create_region(self.multiworld, self.player, 'Menu', None, ['Entrance to IDLE Zone']), - create_region(self.multiworld, self.player, 'IDLE Zone', self.location_name_to_id) - ] - - # link up our region with the entrance we just made - self.multiworld.get_entrance('Entrance to IDLE Zone', self.player)\ - .connect(self.multiworld.get_region('IDLE Zone', self.player)) - - def get_filler_item_name(self) -> str: - return self.multiworld.random.choice(item_table) - - -def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None): - region = Region(name, player, world) - if locations: - for location_name in locations.keys(): - location = ArchipIDLELocation(player, location_name, locations[location_name], region) - region.locations.append(location) - - if exits: - for _exit in exits: - region.exits.append(Entrance(player, _exit, region)) - - return region - - -class ArchipIDLEItem(Item): - game = "ArchipIDLE" - - -class ArchipIDLELocation(Location): - game: str = "ArchipIDLE" diff --git a/worlds/archipidle/docs/en_ArchipIDLE.md b/worlds/archipidle/docs/en_ArchipIDLE.md deleted file mode 100644 index c3b396c6..00000000 --- a/worlds/archipidle/docs/en_ArchipIDLE.md +++ /dev/null @@ -1,13 +0,0 @@ -# ArchipIDLE - -## What is this game? - -ArchipIDLE was originally the 2022 Archipelago April Fools' Day joke. It is an idle game that sends a location check -on regular intervals. Updated annually with more items, gimmicks, and features, the game is visible -only during the month of April. - -## Where is the options page? - -The [player options page for this game](../player-options) contains all the options you need to configure -and export a config file. - diff --git a/worlds/archipidle/docs/guide_en.md b/worlds/archipidle/docs/guide_en.md deleted file mode 100644 index c450ec42..00000000 --- a/worlds/archipidle/docs/guide_en.md +++ /dev/null @@ -1,12 +0,0 @@ -# ArchipIdle Setup Guide - -## Joining a MultiWorld Game -1. Generate a `.yaml` file from the [ArchipIDLE Player Options Page](/games/ArchipIDLE/player-options) -2. Open the ArchipIDLE Client in your web browser by either: - - Navigate to the [ArchipIDLE Client](http://idle.multiworld.link) - - Download the client and run it locally from the - [ArchipIDLE GitHub Releases Page](https://github.com/ArchipelagoMW/archipidle/releases) -3. Enter the server address in the `Server Address` field and press enter -4. Enter your slot name when prompted. This should be the same as the `name` you entered on the - options page above, or the `name` field in your yaml file. -5. Click the "Begin!" button. diff --git a/worlds/archipidle/docs/guide_fr.md b/worlds/archipidle/docs/guide_fr.md deleted file mode 100644 index dc0c8af3..00000000 --- a/worlds/archipidle/docs/guide_fr.md +++ /dev/null @@ -1,11 +0,0 @@ -# Guide de configuration d'ArchipIdle - -## Rejoindre une partie MultiWorld -1. Générez un fichier `.yaml` à partir de la [page des paramètres du lecteur ArchipIDLE](/games/ArchipIDLE/player-options) -2. Ouvrez le client ArchipIDLE dans votre navigateur Web en : - - Accédez au [Client ArchipIDLE](http://idle.multiworld.link) - - Téléchargez le client et exécutez-le localement à partir du [Page des versions d'ArchipIDLE GitHub](https://github.com/ArchipelagoMW/archipidle/releases) -3. Entrez l'adresse du serveur dans le champ `Server Address` et appuyez sur Entrée -4. Entrez votre nom d'emplacement lorsque vous y êtes invité. Il doit être le même que le `name` que vous avez saisi sur le - page de configuration ci-dessus, ou le champ `name` dans votre fichier yaml. -5. Cliquez sur "Commencer !" bouton.