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

Enforce different endings #9

Open
mDuo13 opened this issue Jul 2, 2022 · 2 comments
Open

Enforce different endings #9

mDuo13 opened this issue Jul 2, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@mDuo13
Copy link

mDuo13 commented Jul 2, 2022

It would be nice to have a YAML option for enforcing a specific ending as a clear condition:

  • Defeat Mythrix
  • Obliterate
  • Defeat the Twisted Scavenger
  • Defeat the Void Devastator
  • Reach Commencement / A Moment, Fractured / A Moment, Whole / The Planetarium / etc.
  • Reach a certain wave in the Simulacrum
  • Loop until you've been to {some number of} stages.
  • (etc.)
  • Any
  • Random (this would probably require some sort of message to indicate to the player what their goal is. Optionally, this could be hinted in the game in an in-game dialog somewhere like the Lunar Bazaar or a shrine, or it could just be a message in chat.)

Currently all runs are effectively using the clear condition ("Reach Commencement or Obliterate"), but in an awkward way that requires you to win or die to declare victory. So oftentimes the fastest route to officially winning is to commit suicide as quickly as you can after getting to Commencement.

In my opinion you should either need to actually beat the boss or the game should automatically go to a victory screen when you reach the necessary stage. Also, there's an inconsistency where dying while fighting Mythrix counts as a victory but dying while fighting the Twisted Scavenger does not count.

The relevant part where the code checks for victory is here:

var acceptableEndings = new[] { RoR2Content.GameEndings.MainEnding, RoR2Content.GameEndings.ObliterationEnding, RoR2Content.GameEndings.LimboEnding};
var isAcceptableEnding = (acceptableEndings.Contains(gameEndingDef)) || (gameEndingDef == RoR2Content.GameEndings.StandardLoss && Stage.instance.sceneDef.baseSceneName == "moon2");

@mDuo13
Copy link
Author

mDuo13 commented Jul 12, 2022

#10 is a good start in this direction. Things it covers:

  • The new Void Devastator ending from the DLC
  • Option to enforce actually getting an ending (e.g. dying on the final stage doesn't count)
  • Consistency in how it handles dying on "final" stages other than Commencement

Things it doesn't:

  • Option to require a specific ending to clear the game
    • Option to randomly assign a specific ending (Needs to communicate to the player somehow what their goal is)
    • Other, non-standard goals like collect a certain number of items or visit a certain number of stages
  • Automatically count as goal met upon reaching a final stage rather than counting dying as goal met on those stages

@Vale-X
Copy link
Contributor

Vale-X commented Jul 14, 2022

Currently, there's work going on with the rewrite Iwju started for the Archipelago.RiskOfRain2 mod (the rewrite branch). As part of getting this going, I want to include additional gameplay options for RoR2's AP. The most basic I'm planning on starting with is a 'hunt' mode where you get checks by killing enemies instead of opening chests.

In the future, I'd like to add alternate ending conditions for AP runs as well, if possible.

@Ijwu Ijwu added the enhancement New feature or request label Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants