2023-02-14 00:06:43 +00:00
|
|
|
from BaseClasses import Item, MultiWorld, Region, Location, Entrance, Tutorial, ItemClassification
|
2022-03-13 08:04:12 +00:00
|
|
|
from .Items import item_table
|
|
|
|
from .Rules import set_rules
|
Website Style Upgrade (#353)
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Seed download page improvements
* Add styles to weighted-settings page
* Minor adjustments to styles
* Revert base theme to grass
* Add more items to ArchipIDLE
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Seed download page improvements
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Add styles to weighted-settings page
* Minor adjustments to styles
* Revert base theme to grass
* Add more items to ArchipIDLE
* Improve Archipidle item name
* [WebHost] Update background images, waiting on jungle.png, added partyTime theme
* [WebHost] Fix tab ordering on landing page, remove islands on screen scale, fix tutorial page width scaling
* [WebHost] Final touches to WebHost
* Improve get_world_theme function, add partyTime theme to ArchipIDLE WebWorld
* Remove sending_visible from AutoWorld
* AP Ocarina of Time Client (#352)
* Core: update jinja (#351)
* some typing and cleaning, mostly in Fill.py (#349)
* some typing and cleaning, mostly in Fill.py
* address missing Option types
* resolve a few TODOs discussed in pull request
* SM: Optimize a bit (#350)
* SM: Optimize a bit
* SM: init bosses only once
* New World Order (#355)
* Core: update jinja
* SM: Optimize a bit
* AutoWorld: import worlds in alphabetical order, to be predictable rather than arbitrary
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
* Remove references to Z5Client in English OoT setup guide
* Prevent markdown code blocks from overflowing their container
Co-authored-by: espeon65536 <81029175+espeon65536@users.noreply.github.com>
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
2022-03-29 00:12:17 +00:00
|
|
|
from ..AutoWorld import World, WebWorld
|
2022-05-21 04:12:28 +00:00
|
|
|
from datetime import datetime
|
Website Style Upgrade (#353)
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Seed download page improvements
* Add styles to weighted-settings page
* Minor adjustments to styles
* Revert base theme to grass
* Add more items to ArchipIDLE
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Seed download page improvements
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Add styles to weighted-settings page
* Minor adjustments to styles
* Revert base theme to grass
* Add more items to ArchipIDLE
* Improve Archipidle item name
* [WebHost] Update background images, waiting on jungle.png, added partyTime theme
* [WebHost] Fix tab ordering on landing page, remove islands on screen scale, fix tutorial page width scaling
* [WebHost] Final touches to WebHost
* Improve get_world_theme function, add partyTime theme to ArchipIDLE WebWorld
* Remove sending_visible from AutoWorld
* AP Ocarina of Time Client (#352)
* Core: update jinja (#351)
* some typing and cleaning, mostly in Fill.py (#349)
* some typing and cleaning, mostly in Fill.py
* address missing Option types
* resolve a few TODOs discussed in pull request
* SM: Optimize a bit (#350)
* SM: Optimize a bit
* SM: init bosses only once
* New World Order (#355)
* Core: update jinja
* SM: Optimize a bit
* AutoWorld: import worlds in alphabetical order, to be predictable rather than arbitrary
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
* Remove references to Z5Client in English OoT setup guide
* Prevent markdown code blocks from overflowing their container
Co-authored-by: espeon65536 <81029175+espeon65536@users.noreply.github.com>
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
2022-03-29 00:12:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ArchipIDLEWebWorld(WebWorld):
|
|
|
|
theme = 'partyTime'
|
2022-05-27 00:39:08 +00:00
|
|
|
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']
|
2023-05-01 00:03:31 +00:00
|
|
|
),
|
|
|
|
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']
|
2022-05-27 00:39:08 +00:00
|
|
|
)
|
|
|
|
]
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ArchipIDLEWorld(World):
|
2022-03-14 03:44:30 +00:00
|
|
|
"""
|
2023-04-06 04:08:41 +00:00
|
|
|
An idle game which sends a check every thirty seconds, up to two hundred checks.
|
2022-03-14 03:44:30 +00:00
|
|
|
"""
|
2022-03-13 08:04:12 +00:00
|
|
|
game = "ArchipIDLE"
|
|
|
|
topology_present = False
|
2023-03-30 01:27:35 +00:00
|
|
|
data_version = 5
|
2022-05-21 04:12:28 +00:00
|
|
|
hidden = (datetime.now().month != 4) # ArchipIDLE is only visible during April
|
Website Style Upgrade (#353)
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Seed download page improvements
* Add styles to weighted-settings page
* Minor adjustments to styles
* Revert base theme to grass
* Add more items to ArchipIDLE
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Seed download page improvements
* [WebHost] Update WebHost to include modular themes system, remove unused and outdated assets
* Landing Page Updates
* Markdown updates, colors coming later
* Remove testing theme from FF1
* Color updates for markdown styles
* Updates to generated pages, so many updates
* Add styles to weighted-settings page
* Minor adjustments to styles
* Revert base theme to grass
* Add more items to ArchipIDLE
* Improve Archipidle item name
* [WebHost] Update background images, waiting on jungle.png, added partyTime theme
* [WebHost] Fix tab ordering on landing page, remove islands on screen scale, fix tutorial page width scaling
* [WebHost] Final touches to WebHost
* Improve get_world_theme function, add partyTime theme to ArchipIDLE WebWorld
* Remove sending_visible from AutoWorld
* AP Ocarina of Time Client (#352)
* Core: update jinja (#351)
* some typing and cleaning, mostly in Fill.py (#349)
* some typing and cleaning, mostly in Fill.py
* address missing Option types
* resolve a few TODOs discussed in pull request
* SM: Optimize a bit (#350)
* SM: Optimize a bit
* SM: init bosses only once
* New World Order (#355)
* Core: update jinja
* SM: Optimize a bit
* AutoWorld: import worlds in alphabetical order, to be predictable rather than arbitrary
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
* Remove references to Z5Client in English OoT setup guide
* Prevent markdown code blocks from overflowing their container
Co-authored-by: espeon65536 <81029175+espeon65536@users.noreply.github.com>
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
2022-03-29 00:12:17 +00:00
|
|
|
web = ArchipIDLEWebWorld()
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
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
|
2023-03-30 01:27:35 +00:00
|
|
|
for i in range(1, 201):
|
|
|
|
location_name_to_id[f"IDLE item number {i}"] = start_id
|
2022-03-13 08:04:12 +00:00
|
|
|
start_id += 1
|
|
|
|
|
2023-04-06 04:08:41 +00:00
|
|
|
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):
|
2022-03-13 08:04:12 +00:00
|
|
|
item_table_copy = list(item_table)
|
2022-11-01 02:41:21 +00:00
|
|
|
self.multiworld.random.shuffle(item_table_copy)
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
item_pool = []
|
2023-03-30 01:27:35 +00:00
|
|
|
for i in range(200):
|
2022-08-05 22:49:54 +00:00
|
|
|
item = ArchipIDLEItem(
|
2022-03-14 00:39:13 +00:00
|
|
|
item_table_copy[i],
|
2023-03-30 01:27:35 +00:00
|
|
|
ItemClassification.progression if i < 40 else ItemClassification.filler,
|
2022-03-14 00:39:13 +00:00
|
|
|
self.item_name_to_id[item_table_copy[i]],
|
2022-03-13 19:31:27 +00:00
|
|
|
self.player
|
|
|
|
)
|
2022-03-13 08:04:12 +00:00
|
|
|
item_pool.append(item)
|
|
|
|
|
2022-11-01 02:41:21 +00:00
|
|
|
self.multiworld.itempool += item_pool
|
2022-03-13 08:04:12 +00:00
|
|
|
|
|
|
|
def create_regions(self):
|
2022-11-01 02:41:21 +00:00
|
|
|
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)
|
2022-03-13 08:04:12 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
# link up our region with the entrance we just made
|
2022-11-01 02:41:21 +00:00
|
|
|
self.multiworld.get_entrance('Entrance to IDLE Zone', self.player)\
|
|
|
|
.connect(self.multiworld.get_region('IDLE Zone', self.player))
|
2022-03-13 08:04:12 +00:00
|
|
|
|
2022-05-19 13:37:26 +00:00
|
|
|
def get_filler_item_name(self) -> str:
|
2022-11-01 02:41:21 +00:00
|
|
|
return self.multiworld.random.choice(item_table)
|
2022-03-13 08:04:12 +00:00
|
|
|
|
2022-06-17 01:23:27 +00:00
|
|
|
|
2022-03-13 08:04:12 +00:00
|
|
|
def create_region(world: MultiWorld, player: int, name: str, locations=None, exits=None):
|
2023-02-14 00:06:43 +00:00
|
|
|
region = Region(name, player, world)
|
2022-03-13 08:04:12 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2022-08-05 22:49:54 +00:00
|
|
|
class ArchipIDLEItem(Item):
|
|
|
|
game = "ArchipIDLE"
|
|
|
|
|
|
|
|
|
2022-03-13 08:04:12 +00:00
|
|
|
class ArchipIDLELocation(Location):
|
|
|
|
game: str = "ArchipIDLE"
|