Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aquaria: Adding Aquaria to README and some other minors changes #3313

Merged
merged 79 commits into from
May 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
db79b19
Adding Aquaria game World
tioui Mar 15, 2024
cf48369
Merge branch 'main' of github.com:tioui/Archipelago
tioui Mar 15, 2024
061f1f9
Aquaria version 0 alpha
tioui Mar 18, 2024
7111a48
Adding a forgotten locations in the cathedral
tioui Mar 20, 2024
a1e73f9
Adding rules def
tioui Mar 22, 2024
a8041e9
Forgot the Bedroom location
tioui Mar 23, 2024
cfe2d56
Code refactoring
tioui Mar 25, 2024
5615872
Massive code refactoring
tioui Mar 25, 2024
2098f71
The boss is Mergog and not Mermog
tioui Mar 25, 2024
5b59c0e
Adding transportation turtle as Checks
tioui Mar 26, 2024
a0dedc0
Fixing options
tioui Mar 26, 2024
d42190f
Merge remote-tracking branch 'archipelago/main' into Adding-transport…
tioui Mar 26, 2024
b592ee0
Merging branches
tioui Mar 26, 2024
025dc3a
Merge branch 'main' of github.com:tioui/Archipelago
tioui Mar 26, 2024
1ae96ea
Merge branch 'main' of github.com:ArchipelagoMW/Archipelago
tioui Mar 26, 2024
7de67c1
Needing Li, sun and dual form for last boss
tioui Mar 27, 2024
802743c
Needing sun form for final boss
tioui Mar 27, 2024
0afe679
Bind song also important for the final boss
tioui Mar 27, 2024
ccc4bc5
Some merging bug fix
tioui Mar 27, 2024
568435d
Changing damage rules for crate for coherence
tioui Mar 27, 2024
3eeb302
Adding Bind song rules for bulb under a rock and Transturtle fix
tioui Mar 28, 2024
1a83f2e
Fix duplicate Entrances
tioui Mar 28, 2024
c8cfeba
Manage the start items
tioui Mar 29, 2024
f71ec6d
Adding doc and options.
tioui Apr 3, 2024
c96e1a8
Add a location in easy exclusions
tioui Apr 6, 2024
0572652
Continuing documentation
tioui Apr 11, 2024
6f16865
Documentation and logic errors fix
tioui Apr 14, 2024
e54eacf
Fixing some locations
tioui Apr 14, 2024
ca79153
Location naming coherence
tioui Apr 15, 2024
2bb885b
Using player random instead of multiworld random
tioui Apr 15, 2024
6b20467
Changing the SeaLoaf filler by random ingredients
tioui Apr 15, 2024
75572c0
Merge remote-tracking branch 'archipelago/main'
tioui Apr 16, 2024
8b689b6
Adding Bind song tests
tioui Apr 16, 2024
3aba89b
Adding tests
tioui Apr 17, 2024
9b05e4a
Merge remote-tracking branch 'archipelago/main'
tioui Apr 17, 2024
b77e64b
Adding Li tests
tioui Apr 17, 2024
ad17acf
Adding nature, spirit and sun form tests
tioui Apr 17, 2024
7986519
Adding fish form tests
tioui Apr 18, 2024
71b9789
Adding light test and fix light needed in sun temple
tioui Apr 18, 2024
a8c900d
Refactoring and testing documentation
tioui Apr 18, 2024
8c11608
Typo in a transturtle item
tioui Apr 19, 2024
88a8093
Merge remote-tracking branch 'archipelago/main'
tioui Apr 22, 2024
ed173e4
Forgot to rename a location.
tioui Apr 22, 2024
cac2e5e
Various modifications from peer review
tioui Apr 22, 2024
953c6d6
Adding bracket to has_all methods
tioui Apr 23, 2024
ae7e2af
Changing Choice options by range options
tioui Apr 23, 2024
5ca85b1
Replacing exclusive has by has_any
tioui Apr 23, 2024
bd007cd
Merge branch 'main' into main
Berserker66 Apr 23, 2024
aa7aef8
Removing unused import.
tioui Apr 24, 2024
1d75354
Merge branch 'main' into main
tioui Apr 24, 2024
478681e
Adding state type and use class to contain data in the imte mlist
tioui Apr 29, 2024
211fe95
Merge branch 'main' of github.com:tioui/Archipelago
tioui Apr 29, 2024
dd54a01
Merge branch 'main' into main
tioui Apr 29, 2024
54e1265
Documentation modifications after pull request comments
tioui May 2, 2024
b6d31df
Merge branch 'main' of github.com:tioui/Archipelago
tioui May 2, 2024
42cde60
Merge branch 'main' of github.com:ArchipelagoMW/Archipelago
tioui May 2, 2024
1b996b8
Replacing randomiser by randomizer in french
tioui May 2, 2024
da17464
Merge branch 'main' into main
tioui May 2, 2024
1e0a809
Adding unconfinment methods to exit home water without bind song
tioui May 3, 2024
619dea6
Merge branch 'main' of github.com:tioui/Archipelago
tioui May 3, 2024
d6cc15a
Merge branch 'main' of github.com:ArchipelagoMW/Archipelago
tioui May 3, 2024
45f8873
Adding bubble cave boss location to add rules on it
tioui May 3, 2024
0329b01
Adding bind song rules for sunken city boss
tioui May 3, 2024
b7ab54f
Changing exclusion to item rules for progression
tioui May 10, 2024
e3715a6
Fixing a typo
tioui May 13, 2024
5af7ca3
Adding a rules to be able to break an urn
tioui May 13, 2024
71bf843
Merge branch 'main' of github.com:ArchipelagoMW/Archipelago
tioui May 13, 2024
7dff5d2
Merge branch 'main' into main
Berserker66 May 17, 2024
d9384b2
Merge branch 'main' of github.com:ArchipelagoMW/Archipelago
tioui May 17, 2024
3d963a7
Adding Aquaria to the README
tioui May 17, 2024
9f2ea30
Removing deprecated item_count
Exempt-Medic May 17, 2024
0fd8121
Spacing fix
Exempt-Medic May 17, 2024
eabd14d
Plural fix
Exempt-Medic May 17, 2024
b280e13
Merge pull request #1 from Exempt-Medic/aquaria-edits
tioui May 17, 2024
3db6056
modifications proposed by remyjette
tioui May 17, 2024
4e9175d
Early energy form now use multiworld.early_items
tioui May 17, 2024
70286d7
Change 'bellow' by 'below'
tioui May 17, 2024
05570c2
Merging README
tioui May 17, 2024
3217905
Merge branch 'main' into main
tioui May 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ Currently, the following games are supported:
* Yoshi's Island
* Mario & Luigi: Superstar Saga
* Bomb Rush Cyberfunk
* Aquaria
* Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006

For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/).
Expand Down
20 changes: 12 additions & 8 deletions worlds/aquaria/Items.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@
from enum import Enum
from BaseClasses import Item, ItemClassification


class ItemType(Enum):
"""
Used to indicate to the multi-world if an item is usefull or not
Used to indicate to the multi-world if an item is useful or not
"""
NORMAL = 0
PROGRESSION = 1
JUNK = 2


class ItemGroup(Enum):
"""
Used to group items
Expand All @@ -28,6 +30,7 @@ class ItemGroup(Enum):
SONG = 5
TURTLE = 6


class AquariaItem(Item):
"""
A single item in the Aquaria game.
Expand All @@ -40,22 +43,23 @@ def __init__(self, name: str, classification: ItemClassification,
"""
Initialisation of the Item
:param name: The name of the item
:param classification: If the item is usefull or not
:param classification: If the item is useful or not
:param code: The ID of the item (if None, it is an event)
:param player: The ID of the player in the multiworld
"""
super().__init__(name, classification, code, player)


class ItemData:
"""
Data of an item.
"""
id:int
count:int
type:ItemType
group:ItemGroup
id: int
count: int
type: ItemType
group: ItemGroup

def __init__(self, id:int, count:int, type:ItemType, group:ItemGroup):
def __init__(self, id: int, count: int, type: ItemType, group: ItemGroup):
"""
Initialisation of the item data
@param id: The item ID
Expand All @@ -68,6 +72,7 @@ def __init__(self, id:int, count:int, type:ItemType, group:ItemGroup):
self.type = type
self.group = group


"""Information data for every (not event) item."""
item_table = {
# name: ID, Nb, Item Type, Item Group
Expand Down Expand Up @@ -207,4 +212,3 @@ def __init__(self, id:int, count:int, type:ItemType, group:ItemGroup):
"Transturtle Simon says": ItemData(698132, 1, ItemType.PROGRESSION, ItemGroup.TURTLE), # transport_forest05
"Transturtle Arnassi ruins": ItemData(698133, 1, ItemType.PROGRESSION, ItemGroup.TURTLE), # transport_seahorse
}

8 changes: 4 additions & 4 deletions worlds/aquaria/Locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class AquariaLocations:

locations_home_water = {
"Home water, bulb below the grouper fish": 698058,
"Home water, bulb in the path bellow Nautilus Prime": 698059,
"Home water, bulb in the path below Nautilus Prime": 698059,
"Home water, bulb in the little room above the grouper fish": 698060,
"Home water, bulb in the end of the left path from the verse cave": 698061,
"Home water, bulb in the top left path": 698062,
Expand Down Expand Up @@ -129,7 +129,7 @@ class AquariaLocations:

locations_openwater_bl = {
"Open water bottom left area, bulb behind the chomper fish": 698011,
"Open water bottom left area, bulb inside the downest fish pass": 698010,
"Open water bottom left area, bulb inside the lowest fish pass": 698010,
}

locations_skeleton_path = {
Expand Down Expand Up @@ -226,7 +226,7 @@ class AquariaLocations:
"Mithalas cathedral, third urn in the path behind the flesh vein": 698146,
"Mithalas cathedral, one of the urns in the top right room": 698147,
"Mithalas cathedral, Mithalan Dress": 698189,
"Mithalas cathedral right area, urn bellow the left entrance": 698198,
"Mithalas cathedral right area, urn below the left entrance": 698198,
}

locations_cathedral_underground = {
Expand Down Expand Up @@ -457,7 +457,7 @@ class AquariaLocations:
locations_body_l = {
"The body left area, first bulb in the top face room": 698066,
"The body left area, second bulb in the top face room": 698069,
"The body left area, bulb bellow the water stream": 698067,
"The body left area, bulb below the water stream": 698067,
"The body left area, bulb in the top path to the top face room": 698068,
"The body left area, bulb in the bottom face room": 698070,
}
Expand Down
54 changes: 27 additions & 27 deletions worlds/aquaria/Options.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@

class IngredientRandomizer(Choice):
"""
Randomize Ingredients. Select if the simple ingredients (that does not have
a recipe) should be randomized. If 'common_ingredients' is selected, the
randomization will exclude the "Red Bulb", "Special Bulb" and "Rukh Egg".
Select if the simple ingredients (that do not have a recipe) should be randomized.
If "Common Ingredients" is selected, the randomization will exclude the "Red Bulb", "Special Bulb" and "Rukh Egg".
"""
display_name = "Randomize Ingredients"
option_off = 0
Expand All @@ -29,27 +28,25 @@ class DishRandomizer(Toggle):
class TurtleRandomizer(Choice):
"""Randomize the transportation turtle."""
display_name = "Turtle Randomizer"
option_no_turtle_randomization = 0
option_randomize_all_turtle = 1
option_randomize_turtle_other_than_the_final_one = 2
option_none = 0
option_all = 1
option_all_except_final = 2
default = 2


class EarlyEnergyForm(DefaultOnToggle):
"""
Force the Energy Form to be in a location before leaving the areas around the Home Water.
"""
""" Force the Energy Form to be in a location early in the game """
display_name = "Early Energy Form"


class AquarianTranslation(Toggle):
"""Translate to English the Aquarian scripture in the game."""
"""Translate the Aquarian scripture in the game into English."""
display_name = "Translate Aquarian"


class BigBossesToBeat(Range):
"""
A number of big bosses to beat before having access to the creator (the final boss). The big bosses are
The number of big bosses to beat before having access to the creator (the final boss). The big bosses are
"Fallen God", "Mithalan God", "Drunian God", "Sun God" and "The Golem".
"""
display_name = "Big bosses to beat"
Expand All @@ -60,60 +57,63 @@ class BigBossesToBeat(Range):

class MiniBossesToBeat(Range):
"""
A number of Minibosses to beat before having access to the creator (the final boss). Mini bosses are
The number of minibosses to beat before having access to the creator (the final boss). The minibosses are
"Nautilus Prime", "Blaster Peg Prime", "Mergog", "Mithalan priests", "Octopus Prime", "Crabbius Maximus",
"Mantis Shrimp Prime" and "King Jellyfish God Prime". Note that the Energy statue and Simon says are not
mini bosses.
"Mantis Shrimp Prime" and "King Jellyfish God Prime".
Note that the Energy Statue and Simon Says are not minibosses.
"""
display_name = "Mini bosses to beat"
display_name = "Minibosses to beat"
range_start = 0
range_end = 8
default = 0


class Objective(Choice):
"""
The game objective can be only to kill the creator or to kill the creator
and having obtained the three every secret memories
The game objective can be to kill the creator or to kill the creator after obtaining all three secret memories.
"""
display_name = "Objective"
option_kill_the_creator = 0
option_obtain_secrets_and_kill_the_creator = 1
default = 0


class SkipFirstVision(Toggle):
"""
The first vision in the game; where Naija transform to Energy Form and get fload by enemy; is quite cool but
The first vision in the game, where Naija transforms into Energy Form and gets flooded by enemies, is quite cool but
can be quite long when you already know what is going on. This option can be used to skip this vision.
"""
display_name = "Skip first Naija's vision"
display_name = "Skip Naija's first vision"


class NoProgressionHardOrHiddenLocation(Toggle):
"""
Make sure that there is no progression items at hard to get or hard to find locations.
Those locations that will be very High location (that need beast form, soup and skill to get), every
location in the bubble cave, locations that need you to cross a false wall without any indication, Arnassi
race, bosses and mini-bosses. Usefull for those that want a casual run.
Make sure that there are no progression items at hard-to-reach or hard-to-find locations.
Those locations are very High locations (that need beast form, soup and skill to get),
every location in the bubble cave, locations where need you to cross a false wall without any indication,
the Arnassi race, bosses and minibosses. Useful for those that want a more casual run.
"""
display_name = "No progression in hard or hidden locations"


class LightNeededToGetToDarkPlaces(DefaultOnToggle):
"""
Make sure that the sun form or the dumbo pet can be aquired before getting to dark places. Be aware that navigating
in dark place without light is extremely difficult.
Make sure that the sun form or the dumbo pet can be acquired before getting to dark places.
Be aware that navigating in dark places without light is extremely difficult.
"""
display_name = "Light needed to get to dark places"


class BindSongNeededToGetUnderRockBulb(Toggle):
"""
Make sure that the bind song can be aquired before having to obtain sing bulb under rocks.
Make sure that the bind song can be acquired before having to obtain sing bulbs under rocks.
"""
display_name = "Bind song needed to get sing bulbs under rocks"


class UnconfineHomeWater(Choice):
"""
Open the way out of Home water area so that Naija can go to open water and beyond without the bind song.
Open the way out of the Home water area so that Naija can go to open water and beyond without the bind song.
"""
display_name = "Unconfine Home Water Area"
option_off = 0
Expand Down
21 changes: 5 additions & 16 deletions worlds/aquaria/Regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"""

from typing import Dict, Optional
from BaseClasses import MultiWorld, Region, Entrance, ItemClassification, LocationProgressType, CollectionState
from BaseClasses import MultiWorld, Region, Entrance, ItemClassification, CollectionState
from .Items import AquariaItem
from .Locations import AquariaLocations, AquariaLocation
from .Options import AquariaOptions
Expand Down Expand Up @@ -223,8 +223,6 @@ def __add_region(self, hint: str,
region.add_locations(locations, AquariaLocation)
return region



def __create_home_water_area(self) -> None:
"""
Create the `verse_cave`, `home_water` and `song_cave*` regions
Expand Down Expand Up @@ -941,7 +939,7 @@ def __add_event_secrets(self) -> None:
"""
Add secrets events to the `world`
"""
self.__add_event_location(self.first_secret, # Doit ajouter une région pour le "first secret"
self.__add_event_location(self.first_secret, # Doit ajouter une région pour le "first secret"
"First secret",
"First secret obtained")
self.__add_event_location(self.mithalas_city,
Expand Down Expand Up @@ -1095,12 +1093,10 @@ def __adjusting_light_in_dark_place_rules(self) -> None:
add_rule(self.multiworld.get_entrance("Veil left of sun temple to Sun temple left area", self.player),
lambda state: _has_light(state, self.player) or _has_sun_crystal(state, self.player))



def __adjusting_manual_rules(self) -> None:
add_rule(self.multiworld.get_location("Mithalas cathedral, Mithalan Dress", self.player),
lambda state: _has_beast_form(state, self.player))
add_rule(self.multiworld.get_location("Open water bottom left area, bulb inside the downest fish pass", self.player),
add_rule(self.multiworld.get_location("Open water bottom left area, bulb inside the lowest fish pass", self.player),
lambda state: _has_fish_form(state, self.player))
add_rule(self.multiworld.get_location("Kelp forest bottom left area, Walker baby", self.player),
lambda state: _has_spirit_form(state, self.player))
Expand All @@ -1122,7 +1118,7 @@ def __adjusting_manual_rules(self) -> None:
self.player), lambda state: _has_energy_form(state, self.player))
add_rule(self.multiworld.get_location("Home water, bulb in the bottom left room", self.player),
lambda state: _has_bind_song(state, self.player))
add_rule(self.multiworld.get_location("Home water, bulb in the path bellow Nautilus Prime", self.player),
add_rule(self.multiworld.get_location("Home water, bulb in the path below Nautilus Prime", self.player),
lambda state: _has_bind_song(state, self.player))
add_rule(self.multiworld.get_location("Naija's home, bulb after the energy door", self.player),
lambda state: _has_energy_form(state, self.player))
Expand All @@ -1133,9 +1129,6 @@ def __adjusting_manual_rules(self) -> None:
lambda state: _has_fish_form(state, self.player) and
_has_spirit_form(state, self.player))




def __no_progression_hard_or_hidden_location(self) -> None:
self.multiworld.get_location("Energy temple boss area, Fallen god tooth",
self.player).item_rule =\
Expand Down Expand Up @@ -1242,11 +1235,7 @@ def adjusting_rules(self, options: AquariaOptions) -> None:
add_rule(self.multiworld.get_entrance("Home Water to Open water top left area", self.player),
lambda state: _has_bind_song(state, self.player) and _has_energy_form(state, self.player))
if options.early_energy_form:
add_rule(self.multiworld.get_entrance("Home Water to Home water transturtle room", self.player),
lambda state: _has_energy_form(state, self.player))
if options.early_energy_form:
add_rule(self.multiworld.get_entrance("Home Water to Open water top left area", self.player),
lambda state: _has_energy_form(state, self.player))
self.multiworld.early_items[self.player]["Energy form"] = 1

if options.no_progression_hard_or_hidden_locations:
self.__no_progression_hard_or_hidden_location()
Expand Down
4 changes: 2 additions & 2 deletions worlds/aquaria/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"""

from typing import List, Dict, ClassVar, Any
from ..AutoWorld import World, WebWorld
from worlds.AutoWorld import World, WebWorld
from BaseClasses import Tutorial, MultiWorld, ItemClassification
from .Items import item_table, AquariaItem, ItemType, ItemGroup
from .Locations import location_table
Expand Down Expand Up @@ -114,7 +114,7 @@ def create_regions(self) -> None:

def create_item(self, name: str) -> AquariaItem:
"""
Create an AquariaItem using `name' as item name.
Create an AquariaItem using 'name' as item name.
"""
result: AquariaItem
try:
Expand Down
Loading
Loading