Cross-room damage strats - #2967
Conversation
860711a to
7194024
Compare
7194024 to
575cd1a
Compare
osse101
left a comment
There was a problem hiding this comment.
I commented on all doors for the first few rooms then only mentioned right side doors.
- Below Spazer cac spike
These changes go from comeInWithRMode down to whatever difficulty, and some have complex setups without a GMode tech. Usually where you find the right enemy and wait for it, and maybe that's bad to expect. Some mellas don't have canManipulateMellas but it depends on what is expected of the player for what's fair. Positioning for leaveWithKnockback might take too long and be too precise. leaveWithIFrames usually needs you to know how to end knockback; running into enemies works well but canKago is better.
- Plowerhouse left door comeInWithIFrames is a speedrun strat, but might not save energy over waiting.
- Fish tank top left comeInWithKnockback is one I've been aware of for a long time
- Lava Tunnel [3,1] could save minor energy
I can't think of a useful updoor. Maybe attic.
Most strats are for saving energy, so there's not too much point to high damage exitConditions. A guideline leaveWithIFrames number could be useful too.
| damage_exit_conditions = { | ||
| "leaveWithKnockback", | ||
| "leaveWithDamageBoost", | ||
| "leaveWithIFrames", |
There was a problem hiding this comment.
| "leaveWithIFrames", | |
| "leaveWithIFrames", | |
| "leaveWithXModeSetup", |
There was a problem hiding this comment.
With an X-mode setup, the enemy damage is described as part of the exit condition, so it doesn't need damage in the "requires".
There was a problem hiding this comment.
ok I see what's happening. leaveWithXModeSetup would be written like leaveWithDamage then.
| "id": 3, | ||
| "link": [1, 1], | ||
| "name": "G-Mode Setup - Get Hit By Sova", | ||
| "name": "Leave with Damage - Sova", |
There was a problem hiding this comment.
All of these have alternatives without using a super now
There was a problem hiding this comment.
Added one now to leave through top-right door with high-position damage boost.
| "id": 65, | ||
| "link": [2, 2], | ||
| "name": "G-Mode Setup - Get Hit By Geruta", | ||
| "name": "Leave with Damage - Geruta", |
| @@ -875,7 +881,7 @@ | |||
| { | |||
| "id": 75, | |||
| "link": [2, 4], | |||
There was a problem hiding this comment.
With the heat damage I doubt it would really be useful, but we can add it. Again could apply with unusual rando damage handling
| "id": 44, | ||
| "link": [2, 2], | ||
| "name": "G-Mode Setup - Get Hit By Sova", | ||
| "name": "Leave with Damage - Sova", |
There was a problem hiding this comment.
Lowever requirements to leaveWithDamageBoost
Right, I think the leaveWithDamage setups could probably use another pass to add more requirements. In the meantime my thinking was to have requirements on the application side to keep it in Expert and higher. For Tourian Hoppers we have a canTrickyDodgeEnemies, and for Climb Supers we have a notable which I was thinking we could put in Expert. Currently "canRMode" is in Expert, though I'm not sure this makes sense because I don't know if it has any applications in Expert.
Was there a new leaveWithKnockback strat that was slow? If you mean the existing leaveWithGModeSetup/leaveWithDamage, the slowest ones should have patience requirements, tough if we wanted to support comeInWithIFrames in lower difficulties (e.g. Hard or Very Hard) I imagine we'd need to add a lower-tier (e.g. Expert level) patience-like tech to exclude the slow-ish ones?
I think these distinctions matter more later if we want to move the tricks down lower than Expert; we could add a lenient variant in Tourian Hoppers where it requires a larger amount of i-frames.
Yeah Fish Tank seems like the most significant here. Though because it needs Gravity, you could also just Gravity jump. It could come into play in a speedless blue suit scenario. The other applications I was thinking would be good to add would be for the strats that fall into Sand Halls with i-frames; these are sort of already logically covered by the dodging strats, but using i-frames should be easier than dodging. |
|
I think the right-side ones that I skipped were mostly cases where it didn't help with either application: no way to clear the Climb Supers corner, and an already long enough runway to squeeze under the Hoppers with the easy strat. I'm still debating if it's worth adding these. What do you think? |
|
If the design is to put these in expert then its fine leaving them as they were. I was thinking simple rooms like dachora, and knowing which viola to use in post croc shaft as examples of things that could be annoying for hard-very hard. Where this is a new schema and applies everywhere I was just listing everything. The definite adds would be situations we can find uses for. Beyond that is speculative; dboosts saving energy if we toggle heat on, or strats for toggled water, or romhack rooms. So there's no need to add setups without a purpose, it would only maybe help if we overlook something useful later. SMZ3 has gravity give -75% damage from enemies but has you take full damage from spikes. That's not enough to matter with pirates after heat but its nice that most of the ~100 damage enemies and projectiles are listed. I think we want to try and wrap up this PR and put further additions in a new PR. https://videos.maprando.com/video/10985 walljumpless morphless |
kjbranch
left a comment
There was a problem hiding this comment.
I reviewed Migrate G-mode setups (other cases). Everything looks fine in it, but two comments:
- I wasn't sure that it was best to remove the second enemy from the strat name, but it seems fine.
- I would swap the order of the atomic/covern strats, so it will always choose the atomic strat first if available. If it doesnt matter how you do the strat (i.e. for a g-mode setup) I would think it would always choose the first option, which might be confusing mentioning Covern.
Very nice, I forgot this can work suitless. This will be a great one to add then on the next pass |
|
My remaining comments are on
Everything otherwise looks fine. |
|
I was mostly skipping heated rooms before because I didn't want to take time to try to optimize heat frames when it seemed unlikely to be useful anyway, but I added some of these now. Included leaveWithXMode now in the check for enemy/attack name. Business Center had a high-position damage boost which I missed before, so definitely a useful addition. I tried to respond to every comment but there's a lot so let me know if there's something I missed. The goal isn't to try to include everything on this pass, only the clearly useful left-to-right cases. |
leaveWithGModeSetupwith a more general exit conditionleaveWithDamage.leaveWithKnockback,leaveWithDamageBoost, andleaveWithIFrames.comeInWithKnockback,comeInWithDamageBoost,comeInWithIFrames.I would recommend reviewing this commit-by-commit.
The G-mode setup migration is large but mostly mechanical so I put the mechanical part in its own commit. It couldn't be fully automated as a simple script because the new schema needed the enemy name to be populated, so this was done with LLM assistance. It is supported by a test which checks that the enemy/attack name is one that exists in the enemies list in the room. The cases which needed some special handling were ones where originally there were multiple possible enemies that could be used; these needed to either be split into separate strats (e.g. where the available enemy depends on game state, in Wrecked Ship with power on/off), or just pick the enemy with lowest damage and mention the other in a note.