Git Product home page Git Product logo

archipelago.riskofrain2's People

Contributors

alwaysintreble avatar ijwu avatar vale-x avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

archipelago.riskofrain2's Issues

Location check overflow

After completing all checks or forfeiting, upon reconnect location checks will continue to be sent to the server and iterate the check counter higher than the max.

Enforce different endings

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");

AP mod v1.1.2 does not connect to AP server

AP v0.3.4, RoR2 AP mod v1.1.2 - RoR2 client cannot connect to AP server.

Log from r2modman / BePin console:

[Error  : Unity Log] MissingMethodException: Archipelago.MultiClient.Net.LoginResult Archipelago.MultiClient.Net.ArchipelagoSession.TryConnectAndLogin(string,string,System.Version,Archipelago.MultiClient.Net.Enums.ItemsHandlingFlags,System.Collections.Generic.List`1<string>,string,string)
Stack trace:
Archipelago.RiskOfRain2.ArchipelagoPlugin.Run_onRunStartGlobal (RoR2.Run obj) (at <6f0ff8e3e4874f6799bd1ad00bfb6504>:IL_005E)
RoR2.Run.Start () (at <2b2f3d5000df48ae8f94a9b49e82d786>:IL_017A)

Mod v1.1.1 seems to work fine - connects and sends/receives items as normal.

!collect causes RoR2 to skip items

If someone else uses !collect manually or automatically, the RoR2 player gets jumped ahead to that item number in the linear item collection path, and any items that weren't collected yet but had a lower number now won't be picked up normally by the Risk of Rain 2 player.

Starting run with all item checks complete, further item drops process as if checks remain

AP 0.3.4, RoR 2 AP 1.1.3 (also reprducible in AP 0.3.2, RoR 2 AP 1.1.0, possibly earlier)

When connecting to a fully-item-checked player slot (i.e. dying or quitting after having done all checks but not completing the multiworld goal), the objective counter starts at X/X, but does not auto-complete or disappear - it acts as if there are still checks to be done. Each run restart sets the objective counter back to X/X.

image

The location progress bar also advances as if checks still need to be done:

image

...then the next item that would trigger a check increments the objective counter to X+1/X, as if an item check was sent to the multiworld, but grants no item:

image

Under normal circumstances, completing all check counts, coming from X-1/X -> X/X, the objective completes / crosses-out / disappears, and all item checks beyond that revert to normal local RoR 2 item drops.

Multiworld item checks don't show message (item / receiver) in in-game console

AP version: 0.2.3, 0.2.4
RoR2 AP mod version: 1.0.2 (all mod dependencies at latest versions as of 03 Feb)

When triggering an item check that would send an item to another player, no message is shown in the source player's RoR 2 in-game chat/console detailing what that item is or which player received it. Opening the chat/console in-game shows messages from the server and other players/clients (but not the server's item-send message for the sender's RoR 2 game). The destination player does receive the item as expected.

image

I believe the message was shown as recently as AP 0.2.2 / mod version 1.0.1, but I am not certain.

Allow multiple player slots in one co-op instance

I would like to allow multiple players, each with their own set of items and Archipelago player slot, to make progress while playing the same Risk of Rain 2 co-op instance. So each player sends and receives items from the multiworld according to their own player slot, based on who triggered the item check.

I'm not sure this is technically possible with the way RoR2 works, but it would be nice if it is.

Lower max check count to 250

Having the maximum number of checks in RoR2 at 500 has caused more problems than it has helped. It's not immediately apparent how high people "should" set their number of checks, and setting the number too high causes unfun scenarios like:

  • When the player finishes, there's a long delay as the server sorts out all the checks that just got released and/or collected. Some games may also receive a whole lot at once.
  • That many checks is really unnecessary to clear the game, so they only dilute the overall item pool. It can be deflating for players in other games doing a hard check just to find yet another Common Item for a player who doesn't need it.
  • Since checks are collected in linear order, it can take a long time to get to anything that deep in the queue. And since the RoR2 player will always technically be able to collect more such items, the seed is technically beatable no matter how deep they are.

A brief discussion in the Discord channel reached a consensus on lowering the value to 250 for now, bringing it more in line with the number of checks in most of the other games, with the option to adjust further if 250 still proves to be problematic or lowering the max exposes a need to allow more.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.