Risk of Rain 2
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
6 years ago
Downloads
12K
Size
302KB
Dependency string
ChaseCraig-Artifact_Modifact-1.5.7

ArtifactModifact

By Mylifefighter aka CMC-Theories aka ChaseCraig

Now with 100% more soldier's syringes!

A mod that allows for customizing your risk of rain experience.

  • Did you want to change what could drop from an enemy when using the Sacrifice Artifact? Well now you can change the drop rates of the various tiers of items.

  • Did you want to change how often things drop from enemies when using the Sacrifice Artifact? Well now you can!

  • Did you not want to have a boring old function for a drop rate? Well now you can spice it up with your very own custom drop function! (Limited to the processing capability of your system)

  • Did you ever feel that only having 1 Aurelionite was just too boring? Well now you can change how many spawn on the teleporter event!

  • Did you ever feel that the queen guard and the aurelionite are boring without items? Well now you can have it add random items to them to spice things up! (Planned: copy items, copy some items)

  • Did you ever... (I'm kidding, this hurts you and me, see below for full details)

Please contact Mylifefighter#8823 on Discord if you find any issues besides known bugs.

Installation

  1. Install BepInEx Mod Pack
  2. Install R2API
  3. Download the latest RoROverhaul.dll here
  4. Move the RoROverhaul.dll to your \BepInEx\plugins folder

Configuration

  1. Launch the game once with the mod installed then close it down to generate the configuration files.
  2. Go to \BepInEx\config\RoROverhaul and open mylifefighter.sacrificeart.xxxx.cfg, where xxxx is the part of the mod you wish to edit.

Available Customization

  • Aurelionite and Beetle Guard Allies can spawn with x random items, y hp boosts and z damage boosts.

  • Sacrifice artifact has drop chance, and white/green/red/blue/orange tier drop chance settings.

  • Command artifact has been hooked into and is currently twiddling its thumbs

  • Swarm artifact can influence how many enemies spawn for every 1 original spawn, what is the exp/gold/hp cut/multiplier and damage multipler (DAMAGE MODIFIER IS LIVE!!!!!!).

  • Vengence artifact (Doppelganger!!! :O ) can now be modified to control anything from % of items to percentage randomized to damage,hp,exp,gold cuts (Oh and you can control how many, it is fun to see 20 of them coming at you with like 6 hp :P)

  • Spite artifact (BOMBS) can now be modified to control blast range, amount, etc.

  • New helper file to store all the information about using the custom functions!!

Custom function guide

This mod features usage of my custom function generator, this allows for you to take various parameters and combine them to a single float value.

A typical function looks like this: 0 - 5 * x / LOG((10.5 + t) / cd)(2)

The only unique things are as follows: You must be explicit when writing negative numbers (so -x is written as 0 - x), and comma's don't exist, so to do multi-parameter functions you use 2 parenthesis statements, oh and be explicit with multiplication.

Available functions are:

  • Round(x), Floor(x), Ceil(x), Log(x)(base), Abs(x), Min(x)(y), Max(x)(y), Rand(low)(high), Neg(x)

  • +, -, *, /, ^

FAQ

Q: How do I change the drop chance on the sacrifice artifact?

A: NOW AN EASY ONE STEP PROCESS! Go to the sacrifice config file, open it up and look for the field "DropChance", then enter the function that you want! If you want a constant chance (say a 20 on a d20), put in 5%, if you want something fancy like starts at a low percent but then ramps up as time goes on, use something like 20 + 80*(1.0 - exp(0.0 - (t / 1200))).

Q: Help, 0,0 does not register correctly with your mod!

A: If your globalization settings for your machine does not match what you put in, the script will freak out. Using the "invariant culture" representation of numbers should also work (like 0.0).

Q: How does DmgBoost differ from DmgCut?

A: Sadly I am hooking into the recalculation of stats at the end of the computation, so I don't see everything else. So it is calculated on the total damage output for the cut.

Q: Everything is on fire and nothing is working/My friend is crashing/...?

A: Firstly, make sure that my mod (and R2API and BepInEx) are the only mod(s) installed. Then see if you can replicate the issue. Like I said my mod won't probably play well with other mods. If it still occurs please let me know (with the appropriate log file).

Q: Why can I crash my game by using a 200x spawn ratio for the swarm artifact/Spawn 100 Aurelionite/queens guards?

A: Yes!

Q: What items are in the pool of random items to give to the allies?

A: Whatever is available to spawn in the game, including lunar and boss items (yes...a beetle guard with a gland will spawn an allied beetle guard).

Q: What do the values mean for the tier chances in the sacrifice file?

A: The system works like a lottery, basically everything throws in a positive number of tickets into a pot, then every time it needs an item it draws from the pot and determines what you get. So if tier1 is 9 times more than tier2, then theoretically out of every 10 drops, 9 of them should be tier1 and the remaining should be tier2 (excluding the other tiers).

Q: Does this mean I can do an all white/green/red/blue/yellow run?

A: Yes, just remember to set the other values to 0.0, yes 0.0 is a function, a boring one, but a function none-the-less.

Q: Damage cut on swarm?

A: I will need to figure out a way to implement it, otherwise it doesn't exist and that field just doesn't do anything.

Q: Known bugs?

A: Yes, setting the swarm multiplier to 50 will bring my system to 1 FPS; I am pretty sure that my mod does not play nicely with other mods (item stats doesn't know that I am screwing with the spawning of Aurelionite...but I might be able to figure out how to fix that); I am 99.999% sure that you can break the function mod, so please don't, it only runs on the hosts computer from the host; Yes you can get float.infinity, don't do it.

Q: Command artifact seems unchanged yet you hooked into it?

A: Yes! I did that initially but then I realized there was nothing that I wanted to change...so yes, I have a useless hook.

Q: And your code is...

A: Messy, but that is because I am needing to refactor most of the code. Will do that soon :)

Q: This starts at v1.3.3.1?

A: I didn't think I would actually make it this far.

Planned updates

  • Redo my enemy spawning script as I want to config it but I break so much by touching it

  • Hook into all enemies to give them the options

  • Hook into all allies to give them the options

  • Make this mod play nicer with other mods Hahahahahahahhahahahahahahhahaha, not happening any time soon :(

  • Modify the bomb artifact/the doppleganger artifact/etc. VENGENCE AND SPITE ADDED!!!

  • Make it so that other bosses can be substituted in instead of Aurelionite for boss allies

  • Make it so that other types of enemies can be substituted in instead of beetle guards

  • Somehow compile the function code to speed up execution time

Known Bugs

  • I use HarmonyAPI, I use prefix, and I do return false.

  • Aurelionite will occasionally spawn in a pair of 2...but ***I think it was solved ***

  • One of the boss types (the ghost or the annoying green thing?) won't tint the screen according to some users, I haven't seen this myself but I will be testing it and seeing if it is indeed the case.

  • Debug hell. I need to look into printing debugs to a separate log to prevent spam/lag.

Changelog

v1.5.7

  • Bug fix: Items weren't initialized, so they were referring to item index 0 (including command which removes a special item that increases the user's defences according to the config), but this means it would remove it from the players inventory ASAP, item index 0 == soldier syringe. This is patched.

v1.5.6

  • Fixed the evolution artifact, sorta. Apparently I had the config file using the variable "n", however this was not set in the code to reflect the current stage number (minus 1). This is fixed and the evolution artifact is a go!
  • Added a config line for whether or not you want boss items to drop from non-boss enemies!

v1.5.5

  • Fixed evolution artifact no longer working at all (hence why some people just didn't see stuff). To be fair, I programmed this part when I hadn't unlocked the artifact, so I was doing it blind. But now it is fixed.
  • Rearranged my workspace so now files about different things are now seperate! This will make sure I don't accidently turn off both monster spawning and world spawning.
  • Working on a new monster spawner class...but it is disabled for now :)

v1.5.4

  • Fixed a bug where I accidently disabled the spawning configs for world stuff as well as monsters.
  • I am looking into revamping/making a new spawning system instead of trying to hook into the old system. This means that I WILL be breaking any other mods that rely on it.

v1.5.3

  • Now with 100% more Microsoft.CSharp.dll AND MiniRpcLib.dll. (Required...for reasons???? Idk it fixed it so it stays).
  • Now with 100% more mob spawning! (Con: I removed EVERYTHING regarding the spawning of enemies, so no config there :( )
  • (Dev Note) Rebuilt my solution from scratch, thank you to iDeathHD for pointed me to a working project with Microsoft.CSharp.dll.

v1.5.2

  • Now with 100% less Microsoft.CSharp.dll! (I was trying to implement something, this DLL is free to download and use, it got into my distro via automated processes, at least it wasn't the game files! This actually might return, but maybe in an embedded manner.

v1.5.1

  • CORRECTLY MADE IT SO SACRIFICE SPAWNS EVERYTHING (Gosh darn Command Artifact hooks polluted the previous spawn cards >:( )
  • Suprisingly, that fixed like 99% of things I know of.

v1.5.0

  • Command artifact now actually has a use, it provides armor when in the menu! Configurable amounts too :)
  • Added in controls for how objects spawn in the game. If you want 20 scavenger bags to spawn randomly you can do that in configs!
  • Sacrifice artifact no longer removes alters and drones, UNLESS YOU WANT TO (in the configs, you can even whitelist chests again XD)
  • Some other things I forgot T_T

v1.4.1

  • Whoops! I accidently made it so the default value for Sacrifice was 0! Fixed so drops happen again!
  • I had a math error with my random generation function. Apparently I should test random algorithms from the internet before pushing (it was a draw without replacement (resevoir algorithm)).
  • I need sleep :)

v1.4.0

  • CutDamage added for options!!
  • Added Vengence and Spite artifacts

v1.3.4

  • Silenced even more debugging
  • Added an icon...not a good one...but an icon none-the-less...

v1.3.3.1

  • Added configuration options to a seperate folder since there will be multiple files.
  • Fixed swarm not properly hooking
  • Debug.Silence(SwarmArtifact)
  • Started Git repository
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.