mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
* initial (broken) commit * small work on init * Update Items.py * beginning work, some rom patches * commit progress from bh branch * deathlink, fix soft-reset kill, e-tank loss * begin work on targeting new bhclient * write font * definitely didn't forget to add the other two hashes no * update to modern options, begin colors * fix 6th letter bug * palette shuffle + logic rewrite * fix a bunch of pointers * fix color changes, deathlink, and add wily 5 req * adjust weapon weakness generation * Update Rules.py * attempt wily 5 softlock fix * add explicit test for rbm weaknesses * fix difficulty and hard reset * fix connect deathlink and off by one item color * fix atomic fire again * de-jank deathlink * rewrite wily5 rule * fix rare solo-gen fill issue, hopefully * Update Client.py * fix wily 5 requirements * undo fill hook * fix picopico-kun rules * for real this time * update minimum damage requirement * begin move to procedure patch * finish move to APPP, allow rando boobeam, color updates * fix color bug, UT support? * what do you mean I forgot the procedure * fix UT? * plando weakness and fixes * sfx when item received, more time stopper edge cases * Update test_weakness.py * fix rules and color bug * fix color bug, support reduced flashing * major world overhaul * Update Locations.py * fix first found bugs * mypy cleanup * headerless roms * Update Rom.py * further cleanup * work on energylink * el fixes * update to energylink 2.0 packet * energylink balancing * potentially break other clients, more balancing * Update Items.py * remove startup change from basepatch we write that in patch, since we also need to clean the area before applying * el balancing and feedback * hopefully less test failures? * implement world version check * add weapon/health option * Update Rom.py * x/x2 * specials * Update Color.py * Update Options.py * finally apply location groups * bump minor version number instead * fix duplicate stage sends * validate wily 5, tests * see if renaming fixes * add shuffled weakness * remove passwords * refresh rbm select, fix wily 5 validation * forgot we can't check 0 * oops I broke the basepatch (remove failing test later) * fix solo gen fill error? * fix webhost patch recognition * fix imports, basepatch * move to flexibility metric for boss validation * special case boobeam trap * block strobe on stage select init * more energylink balancing * bump world version * wily HP inaccurate in validation * fix validation edge case * save last completed wily to data storage * mypy and pep8 cleanup * fix file browse validation * fix test failure, add enemy weakness * remove test seed * update enemy damage * inno setup * Update en_Mega Man 2.md * setup guide * Update en_Mega Man 2.md * finish plando weakness section * starting rbm edge case * remove * imports * properly wrap later weakness additions in regen playthrough * fix import * forgot readme * remove time stopper special casing since we moved to proper wily 5 validation, this special casing is no longer important * properly type added locations * Update CODEOWNERS * add animation reduction * deprioritize Time Stopper in rush checks * special case wily phase 1 * fix key error * forgot the test * music and general cleanup * the great rename * fix import * thanks pycharm * reorder palette shuffle * account for alien on shuffled weakness * apply suggestions * fix seedbleed * fix invalid buster passthrough * fix weakness landing beneath required amount * fix failsafe * finish music * fix Time Stopper on Flash/Alien * asar pls * Apply suggestions from code review Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * world helpers * init cleanup * apostrophes * clearer wording * mypy and cleanup * options doc cleanup * Update rom.py * rules cleanup * Update __init__.py * Update __init__.py * move to defaultdict * cleanup world helpers * Update __init__.py * remove unnecessary line from fill hook * forgot the other one * apply code review * remove collect * Update rules.py * forgot another --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com>
114 lines
4.7 KiB
Markdown
114 lines
4.7 KiB
Markdown
# Mega Man 2
|
|
|
|
## 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.
|
|
|
|
## What does randomization do to this game?
|
|
|
|
Weapons received from Robot Masters, access to each individual stage, and Items from Dr. Light are randomized
|
|
into the multiworld. Access to the Wily Stages is locked behind receiving Item 1, 2, and 3. The game is completed when
|
|
viewing the ending sequence after defeating the Alien.
|
|
|
|
## What Mega Man 2 items can appear in other players' worlds?
|
|
- Robot Master weapons
|
|
- Robot Master Access Codes (stage access)
|
|
- Items 1/2/3
|
|
- 1-Ups
|
|
- E-Tanks
|
|
- Health Energy (L)
|
|
- Weapon Energy (L)
|
|
|
|
## What is considered a location check in Mega Man 2?
|
|
- The defeat of a Robot Master or Wily Boss
|
|
- Receiving a weapon or item from Dr. Light
|
|
- Optionally, 1-Ups and E-Tanks present within stages
|
|
- Optionally, Weapon and Health Energy pickups present within stages
|
|
|
|
## When the player receives an item, what happens?
|
|
A sound effect will play based on the type of item received, and the effects of the item will be immediately applied,
|
|
such as unlocking the use of a weapon mid-stage. If the effects of the item cannot be fully applied (such as receiving
|
|
Health Energy while at full health), the leftover amount is withheld until it can be applied.
|
|
|
|
## What is EnergyLink?
|
|
EnergyLink is an energy storage supported by certain games that is shared across all worlds in a multiworld. In Mega Man
|
|
2, when enabled, drops from enemies are not applied directly to Mega Man and are instead deposited into the EnergyLink.
|
|
Half of the energy that would be gained is lost upon transfer to the EnergyLink.
|
|
|
|
Energy from the EnergyLink storage can be converted into health, weapon energy, and lives at different conversion rates.
|
|
You can find out how much of each type you can pull using the `/pool` command in the client. Additionally, you can have it
|
|
automatically pull from the EnergyLink storage to keep Mega Man healed using the `/autoheal` command in the client.
|
|
Finally, you can use the `/request` command to request a certain type of energy from the storage.
|
|
|
|
## Plando Palettes
|
|
The palette shuffle option supports specifying a specific palette for a given weapon/Robot Master. The format for doing
|
|
so is `Character-Color1|Color2;Option`. Character is the individual that this should apply to, and can only be one of
|
|
the following:
|
|
- Mega Buster
|
|
- Atomic Fire
|
|
- Air Shooter
|
|
- Leaf Shield
|
|
- Bubble Lead
|
|
- Quick Boomerang
|
|
- Time Stopper
|
|
- Metal Blade
|
|
- Crash Bomber
|
|
- Item 1
|
|
- Item 2
|
|
- Item 3
|
|
- Heat Man
|
|
- Air Man
|
|
- Wood Man
|
|
- Bubble Man
|
|
- Quick Man
|
|
- Flash Man
|
|
- Metal Man
|
|
- Crash Man
|
|
|
|
Colors attempt to map a list of HTML-defined colors to what the NES can render. A full list of applicable colors can be
|
|
found [here](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/mm2/color.py#L11). Alternatively, colors can
|
|
be supplied directly using `$xx` format. A full list of NES colors can be found [here](https://www.nesdev.org/wiki/PPU_palettes#2C02).
|
|
|
|
You can also pass only one color (such as `Mega Buster-Red`) and it will interpret a second color based off of the color
|
|
given. Additionally, passing only colors (such as `Red|Blue`) and not any specific boss/weapon will apply that color to
|
|
all weapons/bosses that did not have a prior color specified.
|
|
|
|
The option is the method to be used to set the palettes of the remaining bosses/weapons, and will not overwrite any
|
|
plando placements.
|
|
|
|
## Plando Weaknesses
|
|
Plando Weaknesses allows you to override the amount of damage a boss should take from a given weapon, ignoring prior
|
|
weaknesses generated by strict/random weakness options. Formatting for this is as follows:
|
|
```yaml
|
|
plando_weakness:
|
|
Air Man:
|
|
Atomic Fire: 0
|
|
Bubble Lead: 4
|
|
```
|
|
This would cause Air Man to take 4 damage from Bubble Lead, and 0 from Atomic Fire.
|
|
|
|
Note: it is possible that plando weakness is not be respected should the plando create a situation in which the game
|
|
becomes impossible to complete. In this situation, the damage would be boosted to the minimum required to defeat the
|
|
Robot Master.
|
|
|
|
|
|
## Unique Local Commands
|
|
- `/pool` Only present with EnergyLink, prints the max amount of each type of request that could be fulfilled.
|
|
- `/autoheal` Only present with EnergyLink, will automatically drain energy from the EnergyLink in order to
|
|
restore Mega Man's health.
|
|
- `/request <amount> <type>` Only present with EnergyLink, sends a request of a certain type of energy to be pulled from
|
|
the EnergyLink. Types are as follows:
|
|
- `HP` Health
|
|
- `AF` Atomic Fire
|
|
- `AS` Air Shooter
|
|
- `LS` Leaf Shield
|
|
- `BL` Bubble Lead
|
|
- `QB` Quick Boomerang
|
|
- `TS` Time Stopper
|
|
- `MB` Metal Blade
|
|
- `CB` Crash Bomber
|
|
- `I1` Item 1
|
|
- `I2` Item 2
|
|
- `I3` Item 3
|
|
- `1U` Lives |