Giter Site home page Giter Site logo

ror2-yeet's Introduction

Yeet

A mod for Risk of Rain 2. Built with BepInEx and R2API.

Allows throwing items on the ground by clicking them in the inventory screen.

Installation

Release builds are published to Thunderstore: https://thunderstore.io/package/ThinkInvis/Yeet/

Use of a mod manager is recommended. If not using a mod manager: Extract ThinkInvis-Yeet-[version].zip into your BepInEx plugins folder such that the following path exists: [RoR2 game folder]/BepInEx/Plugins/ThinkInvis-Yeet-[version]/Yeet.dll.

Building

Building Yeet locally will require setup of the postbuild event:

  • All xcopy calls need to either be updated with the path to your copy of RoR2, or removed entirely if you don't want copies of the mod moved for testing.

ror2-yeet's People

Contributors

thinkinvis avatar

Stargazers

 avatar  avatar

Watchers

 avatar

ror2-yeet's Issues

New update it no worky >:O

Bug Description

Item no drop!! >:(

Steps To Reproduce

  1. Install Mod
  2. Enable Mod
  3. Launch Game
  4. Select any mode
  5. Select Character
  6. Select Monsoon (obviously)
  7. Select play
  8. Kill enemies with left click
  9. Kill enemies with right click
  10. Find chest
  11. Open chest
  12. Pick up item from chest
  13. Hold tab
  14. Move mouse over item
  15. Left mouse click

Expected Behavior

Item go boing

Console Log

Ugh fine, let me boot the game...

[Error  : Unity Log] InvalidOperationException: CommandHelper is not loaded. Please use [R2APISubmoduleDependency(nameof(CommandHelper)]
Stack trace:
R2API.Utils.CommandHelper.AddToConsoleWhenReady () (at <1bd6ab2074854c4394e063180e61f262>:0)
ThinkInvisible.Yeet.YeetPlugin.Awake () (at <4c6d536754c3467ebdd6eeff9d46999f>:0)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Application:.cctor()
RoR2.Console:RegisterLogHandler()

[Info   : Unity Log] "yeet" is not a recognized ConCommand or ConVar.

Additional Context

It is annoying me fix it now!!!!!

Not Yeeting

Clicking on an inventory item does not do anything.
Log output "[Info : Unity Log] "yeet" is not a recognized ConCommand or ConVar"

Below log generated by clicking the first and second inventory items.
RoR1-0_Yeet

Duplication bug regarding Client "PrimaryQuantity" and "SecondaryQuantity" values and Server "MaxThrowCount" value

Describe the Bug

When value for "PrimaryQuantity" or "SecondaryQuantity" is greater than 1 and when server "MaxThrowCount" is greater than 1, only one item is taken from inventory but multiple are thrown out, duplicating them.

To Reproduce

Steps to reproduce the behavior:

  1. Open configuration file (I'm using r2modman so it's contained with everything else)
  2. Set a value greater than one in either "PrimaryQuantity" and "SecondaryQuantity" (or both) as well as "MaxThrowCount" in mod config (I used 5)
  3. Run game with mod enabled (if not already running), start single-player game or host multi-player game
  4. Press button to bring up inventory, and either Primary or Secondary click while hovering over item
  5. Watch multiple items drop, duplicating them (e.g. 5 Bison Steaks from 1)

Expected Behavior

Drop up-to the limit, but not more than what is available in the inventory.

Console Log (NOTE: using "USERNAME" as placeholder for my username)

[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Bison Steak
[Info: Unity Log] USERNAME yeeted 5x <color=#FFFFFF>Bison Steak
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Bison Steak
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Bison Steak(2)
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Bison Steak(3)
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Bison Steak(4)
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Bison Steak(5)
...
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Personal Shield Generator
[Info: Unity Log] USERNAME yeeted 1x <color=#FFFFFF>Personal Shield Generator
[Debug: TILER2] A config file tracked by AutoItemConfig has been changed: Z:\home\rusty.config\r2modmanPlus-local\RiskOfRain2\profiles\Default\BepInEx\config\com.ThinkInvisible.Yeet.cfg
[Info: Unity Log] Yeet/Client/PrimaryQuantity: 1 > 5
[Info: Unity Log] USERNAME yeeted 5x <color=#FFFFFF>Personal Shield Generator
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Personal Shield Generator
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Personal Shield Generator(2)
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Personal Shield Generator(3)
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Personal Shield Generator(4)
[Info: Unity Log] <style=cEvent>You picked up <color=#FFFFFF>Personal Shield Generator(5)

Additional Context

  1. "Debug" message in runtime log was after I started, but the first section relating to Bison Steak was using the config at launch
  2. Playing on Linux, using r2modman
  3. Using BepInExPack 5.4.1905 (auto-downloaded as dependency)
  4. Using HookGenPatcher 1.2.3 (auto-downloaded as dependency)
  5. Using BetterUI 2.6.1 (downloaded through r2modman)
  6. Using ItemStats 1.2.2 (downloaded through r2modman)
  7. Using TILER2 7.2.0 (auto-downloaded as dependency)
  8. Using Yeet 3.0.0 (downloaded through r2modman)

Items disappear when yeeted

Describe the Bug

Items disappear upon being dropped.

To Reproduce

Steps to reproduce the behavior:

  1. Obtain an item
  2. Click on item to throw it
  3. Wait for item to finish throwing
  4. See the item disappear.

Expected Behavior

The item should drop on the ground after being thrown so it can be picked-up again.

Console Log

LogOutput.log

Mark dropped items as unrecyclable

Is your feature request related to a problem? Please describe.

Items can be continuously dropped, recycled, and picked back up. This can be abused to infinitely recycle items until you get a specific one. It can also be unwanted behavior if you have a recycler with a gesture.

Describe the solution you'd like

Items that are dropped are marked as already recycled or unrecyclable so they cannot be targeted by the recycler.

Config to change number of items dropped / prevent tiers from dropping

i would like to know if it could be possible to add a config to decide how many items are tossed at once and other configs for the tiers of items (mostly red so people who pick benthic bloom don't go and drop 32958 reds afterward but yellows and greens could also be considered.

a config to disable yeeting in the bazaar between time

when using items in a printer / cauldron, there's the risk/reward decision you have to make on whether you're willing to gamble the items that you want vs. the items that you might print. you can also instead choose to drop all of the items that you need and print away the ones that you don't like, but that can expose you to a sudden enemy attack, leaving you defenseless for a few seconds which can lead to your death.
in the bazaar between time however, that risk isn't there anymore. there's no more reason to gamble with your items when you can comfortably drop your desired items on the ground.

a config to disable yeeting in the bazaar can be a nice way to fix this.

an alternate solution that i can come up with is to include items on the ground when deciding which items to print / combine in a cauldron. but i don't know how awkward it might be to code / play with.

Config to disable yeeting in SP

Would like to be able to disable throwing items in SP in part to prevent cheese, but also because I set the yoink CD to 9999 in order reduce cheese and promote primarily using yeet for cooperative item trading in MP and it would be unfortunate if I accidentally clicked an item in SP and lost it for 9999 seconds lol

Broken due to the Devotion Update

Describe the Bug

When tossing an item, it stays as the in-flight sphere thing and rolls around on the ground instead of turning into an item on collision.
20240601141824_1

To Reproduce

Steps to reproduce the behavior:

  1. Toss an item.
  2. The item hits the ground and rolls around as a sphere.

Expected Behavior

Item is dropped normally.

Console Log

Error is at the end of the log.
LogOutput.log

Additional Context

Probably should update the dlls used to compile the mod as well, since I recall some stuff changing related to PickupDropletControllers.
Tried running the mod with GoxOfBears (fixes PickupDropletController stuff), but the issue still persisted.

The specific nullref is

Stack trace:
ThinkInvisible.Yeet.YeetPlugin.PickupDropletController_OnCollisionEnter (On.RoR2.PickupDropletController+orig_OnCollisionEnter orig, RoR2.PickupDropletController self, UnityEngine.Collision collision) (at <937d2afa57214dbe9e16dd7992b14e56>:IL_00AC)
DMD<>?-1737733888.Hook<RoR2.PickupDropletController::OnCollisionEnter>?1916794240 (RoR2.PickupDropletController , UnityEngine.Collision ) (at <96457fedccf2451597afd0e44a6a5847>:IL_0014)```

Toggles for each item rarity (Common, Uncommon, Rare, Boss) for compat with ShareSuite

Is your feature request related to a problem? Please describe.

When playing a multiplayer game with Yeet and Sharesuite, friends and I occasionally yeet Boss items, forgetting that they are (for the most part) shared, duplicating it for everyone but the person who threw it, completely unintentionally.

Describe the solution you'd like

I would like toggleables in the config that allow me to allow/disallow the yeeting of white/green/red/yellow items, in order to have the availability of removing exploits when using Yeet+Sharesuite, using a variety of config settings for either.

Describe alternatives you've considered

I have considered eating more icecream, but sadly I have run out. Otherwise, just a toggle for Boss items would be good enough for me, as that's all me and my friends really need using the current settings for Sharesuite.

Additional context

Out Sharesuite settings have us sharing money, and most boss items (but no other items), allowing us to pick up every item we see, then share items after charging the teleporter or while in the bazaar.
Maybe have a setting to allow yeeting "empty"/used items, and when doing so it'll play "This bitch empty, YEET". Not sure if those items show up properly in the world though.

You can reselect items with the Artifact of Command.

If you drop an item from your inventory while Command is on, it'll show up as a Command selection block instead of the item that you chose to drop, allowing you to reconfigure your entire build on the fly. Is this intended behavior?

Config to prevent (Void/specific) items from dropping,

Is your feature request related to a problem? Please describe.

As of current, you can only disallow Lunar, Equipment, or all non-Equipment items from dropping.
Since the acquisition of Void items is an active decision on par with Lunar items, they shouldn't be allowed to be dropped to preserve the consequences of picking up the Void item.

Describe the solution you'd like

Add a config option to disallow specific items, or more options for what groups of items can be dropped, i.e. selections for Void, White, Green, and Red.

Config to prevent items from droppping in bazaar and near 3D printers

Is your feature request related to a problem? Please describe.

It is very profitable to throw the necessary items on the floor, giving unnecessary items to the printer or exchanger.

Describe the solution you'd like

Add config for preventing items dropping in bazaar, and maybe in some configurable radius around 3D printers

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.