Skip to content

Commit c792ae7

Browse files
authored
Aquaria: Adding Aquaria to README and some other minors changes (#3313)
1 parent bfe215d commit c792ae7

16 files changed

+106
-143
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ Currently, the following games are supported:
6767
* Yoshi's Island
6868
* Mario & Luigi: Superstar Saga
6969
* Bomb Rush Cyberfunk
70+
* Aquaria
7071
* Yu-Gi-Oh! Ultimate Masters: World Championship Tournament 2006
7172

7273
For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/).

worlds/aquaria/Items.py

+12-8
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88
from enum import Enum
99
from BaseClasses import Item, ItemClassification
1010

11+
1112
class ItemType(Enum):
1213
"""
13-
Used to indicate to the multi-world if an item is usefull or not
14+
Used to indicate to the multi-world if an item is useful or not
1415
"""
1516
NORMAL = 0
1617
PROGRESSION = 1
1718
JUNK = 2
1819

20+
1921
class ItemGroup(Enum):
2022
"""
2123
Used to group items
@@ -28,6 +30,7 @@ class ItemGroup(Enum):
2830
SONG = 5
2931
TURTLE = 6
3032

33+
3134
class AquariaItem(Item):
3235
"""
3336
A single item in the Aquaria game.
@@ -40,22 +43,23 @@ def __init__(self, name: str, classification: ItemClassification,
4043
"""
4144
Initialisation of the Item
4245
:param name: The name of the item
43-
:param classification: If the item is usefull or not
46+
:param classification: If the item is useful or not
4447
:param code: The ID of the item (if None, it is an event)
4548
:param player: The ID of the player in the multiworld
4649
"""
4750
super().__init__(name, classification, code, player)
4851

52+
4953
class ItemData:
5054
"""
5155
Data of an item.
5256
"""
53-
id:int
54-
count:int
55-
type:ItemType
56-
group:ItemGroup
57+
id: int
58+
count: int
59+
type: ItemType
60+
group: ItemGroup
5761

58-
def __init__(self, id:int, count:int, type:ItemType, group:ItemGroup):
62+
def __init__(self, id: int, count: int, type: ItemType, group: ItemGroup):
5963
"""
6064
Initialisation of the item data
6165
@param id: The item ID
@@ -68,6 +72,7 @@ def __init__(self, id:int, count:int, type:ItemType, group:ItemGroup):
6872
self.type = type
6973
self.group = group
7074

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

worlds/aquaria/Locations.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class AquariaLocations:
4343

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

130130
locations_openwater_bl = {
131131
"Open water bottom left area, bulb behind the chomper fish": 698011,
132-
"Open water bottom left area, bulb inside the downest fish pass": 698010,
132+
"Open water bottom left area, bulb inside the lowest fish pass": 698010,
133133
}
134134

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

232232
locations_cathedral_underground = {
@@ -457,7 +457,7 @@ class AquariaLocations:
457457
locations_body_l = {
458458
"The body left area, first bulb in the top face room": 698066,
459459
"The body left area, second bulb in the top face room": 698069,
460-
"The body left area, bulb bellow the water stream": 698067,
460+
"The body left area, bulb below the water stream": 698067,
461461
"The body left area, bulb in the top path to the top face room": 698068,
462462
"The body left area, bulb in the bottom face room": 698070,
463463
}

worlds/aquaria/Options.py

+27-27
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@
1010

1111
class IngredientRandomizer(Choice):
1212
"""
13-
Randomize Ingredients. Select if the simple ingredients (that does not have
14-
a recipe) should be randomized. If 'common_ingredients' is selected, the
15-
randomization will exclude the "Red Bulb", "Special Bulb" and "Rukh Egg".
13+
Select if the simple ingredients (that do not have a recipe) should be randomized.
14+
If "Common Ingredients" is selected, the randomization will exclude the "Red Bulb", "Special Bulb" and "Rukh Egg".
1615
"""
1716
display_name = "Randomize Ingredients"
1817
option_off = 0
@@ -29,27 +28,25 @@ class DishRandomizer(Toggle):
2928
class TurtleRandomizer(Choice):
3029
"""Randomize the transportation turtle."""
3130
display_name = "Turtle Randomizer"
32-
option_no_turtle_randomization = 0
33-
option_randomize_all_turtle = 1
34-
option_randomize_turtle_other_than_the_final_one = 2
31+
option_none = 0
32+
option_all = 1
33+
option_all_except_final = 2
3534
default = 2
3635

3736

3837
class EarlyEnergyForm(DefaultOnToggle):
39-
"""
40-
Force the Energy Form to be in a location before leaving the areas around the Home Water.
41-
"""
38+
""" Force the Energy Form to be in a location early in the game """
4239
display_name = "Early Energy Form"
4340

4441

4542
class AquarianTranslation(Toggle):
46-
"""Translate to English the Aquarian scripture in the game."""
43+
"""Translate the Aquarian scripture in the game into English."""
4744
display_name = "Translate Aquarian"
4845

4946

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

6158
class MiniBossesToBeat(Range):
6259
"""
63-
A number of Minibosses to beat before having access to the creator (the final boss). Mini bosses are
60+
The number of minibosses to beat before having access to the creator (the final boss). The minibosses are
6461
"Nautilus Prime", "Blaster Peg Prime", "Mergog", "Mithalan priests", "Octopus Prime", "Crabbius Maximus",
65-
"Mantis Shrimp Prime" and "King Jellyfish God Prime". Note that the Energy statue and Simon says are not
66-
mini bosses.
62+
"Mantis Shrimp Prime" and "King Jellyfish God Prime".
63+
Note that the Energy Statue and Simon Says are not minibosses.
6764
"""
68-
display_name = "Mini bosses to beat"
65+
display_name = "Minibosses to beat"
6966
range_start = 0
7067
range_end = 8
7168
default = 0
7269

7370

7471
class Objective(Choice):
7572
"""
76-
The game objective can be only to kill the creator or to kill the creator
77-
and having obtained the three every secret memories
73+
The game objective can be to kill the creator or to kill the creator after obtaining all three secret memories.
7874
"""
7975
display_name = "Objective"
8076
option_kill_the_creator = 0
8177
option_obtain_secrets_and_kill_the_creator = 1
8278
default = 0
8379

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

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

98+
10099
class LightNeededToGetToDarkPlaces(DefaultOnToggle):
101100
"""
102-
Make sure that the sun form or the dumbo pet can be aquired before getting to dark places. Be aware that navigating
103-
in dark place without light is extremely difficult.
101+
Make sure that the sun form or the dumbo pet can be acquired before getting to dark places.
102+
Be aware that navigating in dark places without light is extremely difficult.
104103
"""
105104
display_name = "Light needed to get to dark places"
106105

106+
107107
class BindSongNeededToGetUnderRockBulb(Toggle):
108108
"""
109-
Make sure that the bind song can be aquired before having to obtain sing bulb under rocks.
109+
Make sure that the bind song can be acquired before having to obtain sing bulbs under rocks.
110110
"""
111111
display_name = "Bind song needed to get sing bulbs under rocks"
112112

113113

114114
class UnconfineHomeWater(Choice):
115115
"""
116-
Open the way out of Home water area so that Naija can go to open water and beyond without the bind song.
116+
Open the way out of the Home water area so that Naija can go to open water and beyond without the bind song.
117117
"""
118118
display_name = "Unconfine Home Water Area"
119119
option_off = 0

worlds/aquaria/Regions.py

+5-16
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"""
66

77
from typing import Dict, Optional
8-
from BaseClasses import MultiWorld, Region, Entrance, ItemClassification, LocationProgressType, CollectionState
8+
from BaseClasses import MultiWorld, Region, Entrance, ItemClassification, CollectionState
99
from .Items import AquariaItem
1010
from .Locations import AquariaLocations, AquariaLocation
1111
from .Options import AquariaOptions
@@ -223,8 +223,6 @@ def __add_region(self, hint: str,
223223
region.add_locations(locations, AquariaLocation)
224224
return region
225225

226-
227-
228226
def __create_home_water_area(self) -> None:
229227
"""
230228
Create the `verse_cave`, `home_water` and `song_cave*` regions
@@ -941,7 +939,7 @@ def __add_event_secrets(self) -> None:
941939
"""
942940
Add secrets events to the `world`
943941
"""
944-
self.__add_event_location(self.first_secret, # Doit ajouter une région pour le "first secret"
942+
self.__add_event_location(self.first_secret, # Doit ajouter une région pour le "first secret"
945943
"First secret",
946944
"First secret obtained")
947945
self.__add_event_location(self.mithalas_city,
@@ -1095,12 +1093,10 @@ def __adjusting_light_in_dark_place_rules(self) -> None:
10951093
add_rule(self.multiworld.get_entrance("Veil left of sun temple to Sun temple left area", self.player),
10961094
lambda state: _has_light(state, self.player) or _has_sun_crystal(state, self.player))
10971095

1098-
1099-
11001096
def __adjusting_manual_rules(self) -> None:
11011097
add_rule(self.multiworld.get_location("Mithalas cathedral, Mithalan Dress", self.player),
11021098
lambda state: _has_beast_form(state, self.player))
1103-
add_rule(self.multiworld.get_location("Open water bottom left area, bulb inside the downest fish pass", self.player),
1099+
add_rule(self.multiworld.get_location("Open water bottom left area, bulb inside the lowest fish pass", self.player),
11041100
lambda state: _has_fish_form(state, self.player))
11051101
add_rule(self.multiworld.get_location("Kelp forest bottom left area, Walker baby", self.player),
11061102
lambda state: _has_spirit_form(state, self.player))
@@ -1122,7 +1118,7 @@ def __adjusting_manual_rules(self) -> None:
11221118
self.player), lambda state: _has_energy_form(state, self.player))
11231119
add_rule(self.multiworld.get_location("Home water, bulb in the bottom left room", self.player),
11241120
lambda state: _has_bind_song(state, self.player))
1125-
add_rule(self.multiworld.get_location("Home water, bulb in the path bellow Nautilus Prime", self.player),
1121+
add_rule(self.multiworld.get_location("Home water, bulb in the path below Nautilus Prime", self.player),
11261122
lambda state: _has_bind_song(state, self.player))
11271123
add_rule(self.multiworld.get_location("Naija's home, bulb after the energy door", self.player),
11281124
lambda state: _has_energy_form(state, self.player))
@@ -1133,9 +1129,6 @@ def __adjusting_manual_rules(self) -> None:
11331129
lambda state: _has_fish_form(state, self.player) and
11341130
_has_spirit_form(state, self.player))
11351131

1136-
1137-
1138-
11391132
def __no_progression_hard_or_hidden_location(self) -> None:
11401133
self.multiworld.get_location("Energy temple boss area, Fallen god tooth",
11411134
self.player).item_rule =\
@@ -1242,11 +1235,7 @@ def adjusting_rules(self, options: AquariaOptions) -> None:
12421235
add_rule(self.multiworld.get_entrance("Home Water to Open water top left area", self.player),
12431236
lambda state: _has_bind_song(state, self.player) and _has_energy_form(state, self.player))
12441237
if options.early_energy_form:
1245-
add_rule(self.multiworld.get_entrance("Home Water to Home water transturtle room", self.player),
1246-
lambda state: _has_energy_form(state, self.player))
1247-
if options.early_energy_form:
1248-
add_rule(self.multiworld.get_entrance("Home Water to Open water top left area", self.player),
1249-
lambda state: _has_energy_form(state, self.player))
1238+
self.multiworld.early_items[self.player]["Energy form"] = 1
12501239

12511240
if options.no_progression_hard_or_hidden_locations:
12521241
self.__no_progression_hard_or_hidden_location()

worlds/aquaria/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"""
66

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

115115
def create_item(self, name: str) -> AquariaItem:
116116
"""
117-
Create an AquariaItem using `name' as item name.
117+
Create an AquariaItem using 'name' as item name.
118118
"""
119119
result: AquariaItem
120120
try:

0 commit comments

Comments
 (0)