Skip to content

Commit

Permalink
lojical changes
Browse files Browse the repository at this point in the history
and setup guide changes
  • Loading branch information
Ehseezed committed Oct 28, 2023
1 parent 8f117f5 commit c37b46b
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 22 deletions.
5 changes: 3 additions & 2 deletions worlds/AM2R/docs/en_AM2R.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ There currently is no client to use this with

Download and install the latest version of [Archipelago](https://github.com/ArchipelagoMW/Archipelago/releases) the `AM2R.apworld` from below.
Once you have installed Archipelago you can take the `AM2R.apworld` and put it inside the `/lib/worlds` portion of your Archipelago install.
From there to get a generic `AM2R.yaml` open the Archipelago Launcher and click the **Generate Template settings** which will add it to the template yaml folder in `/Players/Templates`
From there to get a generic `AM2R.yaml` open the Archipelago Launcher and click the **Generate Template settings** which will add it to the template yaml folder in `/Players/Templates`.
### Things are subject to change at developer discretion
### Seeds should be beatable but its possible there are still logical errors
## Bug Reporting
If you are playing this mod and are encountering bugs **DO NOT** report them to the Archipelago server this is not offical support from them, and they may or may not know what to do instead you can report them to the dedicated mod thread on the [AM2R Server](https://discord.gg/YTQnkAJ) or on the [Modding Server](https://discord.gg/Fdq3MSXEDb) and you can always open an issue on the github.

### Help I found a problem with 100% trap fill playing on fusion mode
Fuck you Abyss said it was possible, and I was there.

## Randomizer Information
### What is randomized?
Expand Down
12 changes: 6 additions & 6 deletions worlds/AM2R/locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@ def get_location_datas(world: Optional[MultiWorld], player: Optional[int]):
LocationData("Inner Hydro Station", "Hydro Station: Behind Hi Jump", 8680036, logic.AM2R_can_bomb),

LocationData("Hydro Nest", "Hydro Nest: Below the Walkway", 8680037, logic.AM2R_can_bomb), # Bomb
LocationData("Hydro Nest", "Hydro Nest: Speed Celling", 8680038, lambda state: state.has("Speed Booster", player)), # speed
LocationData("Hydro Nest", "Hydro Nest: Behind the Wall", 8680039, lambda state: state.has("Power Bomb", player) and (state.has("Screw Attack", player) or state.has("Speed Booster", player))), # PB + screw/speed
LocationData("Hydro Nest", "Hydro Nest: Speed Celling", 8680038, lambda state: state.has("Speed Booster", player) and state.has("Speed Booster", player)), # speed
LocationData("Hydro Nest", "Hydro Nest: Behind the Wall", 8680039, lambda state: state.has("Power Bomb", player) and state.has("Screw Attack", player) and state.has("Speed Booster", player)), # PB + screw/speed

LocationData("Industrial Complex Nest", "Industrial Complex: Above Save", 8680040),
LocationData("Industrial Complex Nest", "Industrial Complex: EMP Room", 8680041, lambda state: state.has("Power Bomb", player) and state.has("Super Missile", player)), # PB + super
LocationData("Industrial Complex Nest", "Industrial Complex: EMP Room", 8680041, lambda state: state.has("Power Bomb", player) and state.has("Super Missile", player) and state.can_reach("EMP", "Region", player)), # PB + super
LocationData("Industrial Complex Nest", "Industrial Complex Nest: Nest Shinespark", 8680042, lambda state: state.has("Super Missile", player) and state.has("Speed Booster", player) and logic.AM2R_can_schmove(state) and logic.AM2R_can_bomb(state)), # super + schmove

LocationData("Pre Industrial Complex", "Industrial Complex: In the Sand", 8680043),
Expand Down Expand Up @@ -156,7 +156,7 @@ def get_location_datas(world: Optional[MultiWorld], player: Optional[int]):
LocationData("Industrial Complex Nest", "Industrial Nest: Mohwir", 8680115, lambda state: logic.AM2R_can_bomb(state) and (state.has("Speed Booster", player) or state.has("Super Missile", player))),
LocationData("Industrial Complex Nest", "Industrial Nest: Chirn", 8680116, lambda state: logic.AM2R_can_bomb(state) and (state.has("Speed Booster", player) or state.has("Super Missile", player))),
LocationData("Industrial Complex Nest", "Industrial Nest: BHHarbinger", 8680117, lambda state: logic.AM2R_can_bomb(state) and (state.has("Speed Booster", player) or state.has("Super Missile", player))),
LocationData("Industrial Complex Nest", "Industrial Nest: The Abyssal Creature", 8680118, lambda state: logic.AM2R_can_bomb(state) and state.has("Spider_Ball", player) and (state.has("Speed Booster", player) or state.has("Super Missile", player))),
LocationData("Industrial Complex Nest", "Industrial Nest: The Abyssal Creature", 8680118, lambda state: logic.AM2R_can_bomb(state) and state.has("Spider Ball", player) and (state.has("Speed Booster", player) or state.has("Super Missile", player))),

LocationData("Pre Industrial Complex", "Industrial Complex: Sisyphus", 8680119, logic.AM2R_can_spider), # Mimo
LocationData("Pre Industrial Complex", "Industrial Complex: And then there\'s this Asshole", 8680120, logic.AM2R_can_spider), # ANX
Expand All @@ -167,8 +167,8 @@ def get_location_datas(world: Optional[MultiWorld], player: Optional[int]):
LocationData("GFS Thoth", "Dual Alphas: Marco", 8680123), # Epsilon
LocationData("GFS Thoth", "Dual Alphas: Polo", 8680124), # Epsilon

LocationData("Mines", "Mines: Unga", 8680125, lambda state: state.has("Super Missile", player) and (logic.AM2R_can_fly(state) or state.has("Speed Booster", player))),
LocationData("Mines", "Mines: Gunga", 8680126, lambda state: state.has("Super Missile", player) and (logic.AM2R_can_fly(state) or state.has("Speed Booster", player))),
LocationData("Mines", "Mines: Unga", 8680125, lambda state: state.has("Super Missile", player) and (state.has("Space Jump", player) or state.has("Spider Ball", player))),
LocationData("Mines", "Mines: Gunga", 8680126, lambda state: state.has("Super Missile", player) and (state.has("Space Jump", player) or state.has("Spider Ball", player))),

LocationData("The Tower", "The Tower: Patricia", 8680127, logic.AM2R_can_fly), # Mahan
LocationData("The Tower", "The Tower: Variable \"GUH\"", 8680128, logic.AM2R_can_fly), # ANX
Expand Down
8 changes: 4 additions & 4 deletions worlds/AM2R/regions.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,15 +175,15 @@ def create_regions_and_locations(world: MultiWorld, player: int):
connect(world, player, "Pipe Hell L", "Fast Travel", lambda state: state.has("Screw Attack", player)),
connect(world, player, "Fast Travel", "Pipe Hell L", lambda state: state.has("Screw Attack", player)),

connect(world, player, "Fast Travel", "Gravity"), # one way transition due to crumbles
connect(world, player, "Fast Travel", "Gravity", lambda state: state.has("Gravity Suit", player)), # one way transition due to crumbles

connect(world, player, "Fast Travel", "Underwater Distribution Center"),
connect(world, player, "Underwater Distribution Center", "Fast Travel", lambda state: state.can_reach("Fast Travel", "Region", player)),

connect(world,player, "Gravity", "Pipe Hell Outside", lambda state: state.has("Gravity Suit", player) and state.has("Space Jump", player)),
connect(world,player, "Pipe Hell Outside", "Gravity"),
connect(world, player, "Gravity", "Pipe Hell Outside", lambda state: state.has("Gravity Suit", player) and state.has("Space Jump", player)),
connect(world, player, "Pipe Hell Outside", "Gravity"),

connect(world, player, "Pipe Hell Outside", "Pipe Hell R"),
connect(world, player, "Pipe Hell Outside", "Pipe Hell R", logic.AM2R_can_bomb),
connect(world, player, "Pipe Hell R", "Pipe Hell Outside", lambda state: state.can_reach("Pipe Hell Outside", "Region", player)),

connect(world, player, "Underwater Distribution Center", "Underwater Distro Connection", lambda state: state.has("Ice Beam", player) or (state.has("Gravity Suit", player) and state.has("Speed Booster", player))),
Expand Down
20 changes: 10 additions & 10 deletions worlds/AM2R/rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,24 @@ def AM2R_can_down(self, state: CollectionState) -> bool:

if MetroidsAreChecks == MetroidsAreChecks.option_exclude_A6 or MetroidsAreChecks.option_include_A6:
return state.has("Metroid", self.player, amount) \
and state.has_all({"Speed Booster", "Ice Beam", "Super Missile", "Screw Attack"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state)
and state.has_all({"Speed Booster", "Ice Beam", "Super Missile"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state) and (state.has("Screw Attack", self.player) or state.has("Power Bomb", self.player))
else:
return state.has_all({"Speed Booster", "Ice Beam", "Super Missile", "Screw Attack"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state)
return state.has_all({"Speed Booster", "Ice Beam", "Super Missile"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state) and (state.has("Screw Attack", self.player) or state.has("Power Bomb", self.player))

def AM2R_can_lab(self, state: CollectionState) -> bool:
amount = get_option_value(MultiWorld, self.player, "MetroidsRequired")

if MetroidsAreChecks == MetroidsAreChecks.option_include_A6:
amount += 5
return state.has("Metroid", self.player, amount) \
and state.has_all({"Speed Booster", "Ice Beam", "Super Missile", "Screw Attack"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state)
and state.has_all({"Speed Booster", "Ice Beam", "Super Missile"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state) and (state.has("Screw Attack", self.player) or state.has("Power Bomb", self.player))
elif MetroidsAreChecks == MetroidsAreChecks.option_exclude_A6:
return state.has("Metroid", self.player, amount) \
and state.has_all({"Speed Booster", "Ice Beam", "Super Missile", "Screw Attack"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state)
and state.has_all({"Speed Booster", "Ice Beam", "Super Missile"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state) and (state.has("Screw Attack", self.player) or state.has("Power Bomb", self.player))
else:
return state.has_all({"Speed Booster", "Ice Beam", "Super Missile", "Screw Attack"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state)
return state.has_all({"Speed Booster", "Ice Beam", "Super Missile"}, self.player) \
and self.AM2R_can_fly(state) and self.AM2R_can_bomb(state) and (state.has("Screw Attack", self.player) or state.has("Power Bomb", self.player))

0 comments on commit c37b46b

Please sign in to comment.