Giter Site home page Giter Site logo

teammaterevive's Introduction

Notice Board

Description:

Survivors can revive their fallen colleagues, but it comes at the price of their own health. A skull totem marks where the player died. Stand within the circle to begin, but stay at your own risk ;)

All players need this mod


Integration:


Feedback:

Feedback would be greatly appreciated. If you encounter any bugs or want to discuss new or existing features, please submit an issue on Github, or contact KosmosisDire#4195 or amadare#8308 on Discord!



Default Game Mode:

The default and most simple game mode. When a teammate dies you can revive them by staying inside of the purple bubble around where they died. Reviving drains your health over time to balance things out. This makes it dangerous (but possible) to revive during battle. Once battle is over it isn't too dangerous to revive.




Death Curse Game Mode:

This is a new optional game mode which fleshes out the experience with more difficulty and revival mechanics. There are a number of under the hood things to make the whole system balanced and adjust to player skill.

Death Curse

Death Curse Icon

When a player is revived, they will receive the Death Curse, along with one other random player who helped revive. Death Curse is a debuff that reduces Max HP/ Shield simmilar to Shaped Glass. These debuffs will stack!

Charon's Obol

Charon's Obol

The Charon's Obol item makes revival faster and easier. It can also be consumed to make revival instant without getting cursed.

Death Curse and Obol

Every time you enter a new stage, 1 Curse will be removed. The number removed goes up by 1 for every Obol you have.

Dead Man's Hand - Lunar Item

Dead Man's Hand

  • Revive dead teammates everywhere on the map.
  • First item increases revival time by x2
  • Every subsequent item decreases revival time when you are reviving



Change Notes:

To Do:

  • Organize config options to make more user friendly.
  • Make progress bar line up pixel perfect with health bar, regardless of resolution.

4.1.4 - Latest Update

  • Made mod strings localizable
  • Fixed bug with using "find" console command
  • Added separate chance for reviver to get Death Curse

4.1.3

  • Fixed possible incompatibility with mods that modify the HUD
  • Fixed bug where curse mode items always dropped, even in normal mode.
  • Progress bar visual changes, and better alignment with healthbar.
  • code cleanup

4.1.2

  • Fixed missing Risk Of Options integration.
  • Fixed artifact not being disabled when turned off in options.

4.1.1

  • Fixed for patch 1.2.3
  • Updated totem coloring and visuals
  • Updated progress bar UI
  • Added Risk Of Options integration for easy changing options in-game
  • Added options to disable death curse features
  • Hopefully fixed weird addition of items in Simulacrum
  • Fixed compatibilty with ExtendedLoadout

4.1.0

  • Updated for the Survivors of the Void update!
  • Fixed some other unrelated bugs
  • Clean up project structure
  • Thanks to nathanpovo and amadare for their work on this patch

4.0.1

  • Checkout 4.0.0 for the most important recent changes!
  • Fixed bug where a buff was not hidden
  • updated readme typos :|

4.0.0 - big thanks to amadare

  • Huge refactoring of whole codebase
  • A lot of bug fixes and general improvements
  • The revival time now makes actual sense.
  • Added optional Death Curse mechanic and Charon's Obol that adds more depth to revive mechanic
  • Added ItemStats & BetterUI mods integration
  • Added revival progress bar
  • Changed and tweaked revival formula
  • Network optimization
  • Every revival aspect is highly configurable
  • Revival range is now increased depending on players inside
  • Added some debugging tools
  • Trancendence used to break it, but now it's a feature ;)

3.3.8

  • Fixed bug that caused players to instantly respawn after their first revival.

3.3.7

  • Fixed stupid bug that made the whole mod do nothing and break.

3.3.6

  • Fixed possible incompatibility with drop in multiplayer
  • Made more reliable

3.3.5

  • Fixed a bug that caused skulls to not spawn - not tested but pretty sure this will fix it
  • Please submit an issue on Github if there is still a problem!

3.3.4

  • Fixed a bug that made the mod think the players hadn't died

3.3.3

  • Hopefully fixed a bug that caused a NRE on player death.

3.3.2

  • Now when a player dies in midair the totem / skull will spawn at the closest ground location (rather than midair).
  • Damage numbers now show on both client and server.
  • Lighting should now also sync to the clients as well.
  • Fixed a bug where the mod didn't recognize if the player was revived by something other than this mod.

3.1.0

  • Works now lol
  • I actually tested it this time :P

3.0.0

  • Actually fixed a bug that kept it from working after the first stage
  • Fixed a TON of other networking bugs.
  • Everything should actually work now.

2.3.2

  • Hopefully fixed bug where it wouldn't do anything after the first stage
  • Fixed a bug where clients would run server-side code
  • Hopefully everything works decently now? sorry for so many updates all at once

2.2.1

  • Fixed some more networking bugs hopefully

2.2.0

  • Hopefully fixed networking for the most part! It was broken this whole time and I didn't realize

2.1.0

  • Visual Changes
    • Made range circle more visible
    • Made damage effect less visible (only shows damage numbers)
    • Shows healing numbers on the player skull
    • light now goes back to red if you leave the revival radius
  • Revival should now be quicker
  • Config items DO NOT WORK, but I can't figure out how to get rid of them without the user deleting the file
  • Players can now use up all their health down to 1HP while reviving someone.

2.0.0

  • Major visual update
    • A red-lit skull marks the place of death
    • An 'X' marker visible through any terrain now shows above the skull.
    • Dynamic lighting queues how close the player is to revival.
    • A circle on the ground shows the range you must stay in to continue reviving your teammate.
  • Fixed Bugs:
    • Fixed a bug that caused hundreds of Null Reference Exceptions
    • Made it so the player list is only populated once, unless new players join the game.
    • Mod must now be downloaded by each player.
  • Removed many unnecissary logs.
  • Miscelaneous changes to the system.

1.0.6

  • Made it so it actually works this time (WOW!)
  • Added a skull that hovers over a player's location on death (this is used as the revival point)
  • Made health drain from the reviving player and add onto the dead player (speed depends on player level)
  • Still lots of bugs and polish and visual changes that need to be added!

1.0.5

  • Hopefully fixed players being able to revive themselves
  • (I didn't fix it it broke the entire thing... yay)

1.0.4

  • Got mod actually working
  • Bugs:
    • Players can revive themselves after they die :|

1.0.3

  • fixed versioning

1.0.2

  • Fixed a few problems (still not functional yet)

1.0.1:

  • Fixed typos
  • updated artwork

1.0.0:

  • Initial "release" (not really a release but, eh)
  • was put on here for testing multiplayer, but accidentally started at 1.0.0 unstead of 0.0.1 :|



Keywords: respawn - heal - bleed - steal - give - multiplayer

teammaterevive's People

Contributors

amadare42 avatar destroyedclone avatar kingenderbrine avatar kosmosisdire avatar miniaczq avatar nathanpovo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

teammaterevive's Issues

Multiplayer death desync issue

In multiplayer, its possible for clients to "die" to a hit that didn't kill them, resulting in them still being able to play but being registered as dead for purposes of the run.

I am unsure if this is directly related to this mod or if its an incompatibility somewhere, but I have logs. Around line 6400 you can start to see some weird things happening. I decided to report this here since I can see some debug messages related to the mod. Sorry I can't be more specific.
LogOutput.log
LogOutput-host.log

Players Self Reviving

There are cases where a player who has been revived before is able to revive themselves on their original revive location.

Known Details:

  • Revives on Original location, Where the skull originally was,
  • There is no skull on the revive location (intended behavior)
  • Instant, (not sure if it was caused by death but its very likely as I was a glass cannon with 8 shaped glass)
  • Happens not only to the host but also to other players.
  • It is pretty fun to be revived but it might be immersion/game breaking for others.

Not sure if it happens all the time

Toggle related items and artifacts via config

I enjoy the basic mechanics of this mod but I find the added items (Dead Man's Hand, Obol) and artifacts (Death Curse) to be clutter in my menus and runs more often than not, and would appreciate a config setting to disable them while still being able to use the basic 'stand near a dead ally to revive them' functionality.

Mid-air death.

I find myself dying mid air often which results in the skull being hard to reach.

Multiplayer not working

Describe the bug
When another player joins the lobby, their UI is messed up and they cannot select any characters or see what is going on. They cannot follow the host into the game.

To Reproduce
Steps to reproduce the behavior:

  1. Install RoR2 and the new Void DLC
  2. Install r2modman 3.1.27
  3. Install Teammate Revival through the mod manager, the dependencies are included automatically.
  4. Start the game and observe your log file:
    [Info   :   BepInEx] Loading [TeammateRevival 4.1.0]
    [Error  : Unity Log] TypeLoadException: Could not resolve type with token 0100001b (from typeref, class/assembly On.RoR2.Run, MMHOOK_Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
Stack trace:
TeammateRevive.MainTeammateRevival.Awake () (at <aeb998a1ba114dbfa5c12346a5ba4503>:0)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
FlashWindow:.cctor()
  1. Observe the reported bug behavior in a multiplayer lobby by having another player with the same mods host a lobby for you to join.

Expected behavior
The ability to play in a listen server.

Additional context
Full log is attached including more detailed debugging statements
LogOutput.log
.

Respawning after death sometimes puts you under the map

This happened a lot during my run yesterday with my friends, where respawning you wouldn't put you near the origin point of your death, and instead would teleport you under the map
Under certain cases this was fine and recoverable, but since we went into the void fields, it made reviving someone impossible without running debug commands.

Configurable respawns during certain events

A big part of the competitive respawn mod is that you can configure which events disable respawn mechanics.
I think it'd be worth incorporating into this mod as well,
it would make for a more balanced experience.

Game won't load with both TeammateRevive and ExtendedLoadout

Game won't load with both TeammateRevive and ExtendedLoadout by KingEnderBrine. Crossposting from their github.

Looks like it's a conflict with TeammateRevival by KosmosisDire. Modlist with either loads fine. Only happens when both are enabled. I'm crossposting this to their github, not sure who the conflict is on.

[Info   :     R2API] Generating a total of 3 ContentPacks...
[Info   : Unity Log] LoadContentPacks() start
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
TeammateRevive.ContentManager.LanguageOnSetStringByToken (On.RoR2.Language+orig_SetStringByToken orig, RoR2.Language self, System.String token, System.String localizedstring) (at <aeb998a1ba114dbfa5c12346a5ba4503>:0)
DMD<>?-1506757376.Hook<RoR2.Language::SetStringByToken>?-506429568 (RoR2.Language , System.String , System.String ) (at <bc93fda088a84295a80156884a099bc5>:0)
RoR2.Language.SetStringsByTokens (System.Collections.Generic.IEnumerable`1[T] tokenPairs) (at <0f44b36eaa194934bb127b3fdd08e444>:0)
RoR2.Language.LoadStrings () (at <0f44b36eaa194934bb127b3fdd08e444>:0)
ExtendedLoadout.ExtendedLoadoutPlugin+<RoR2-ContentManagement-IContentPackProvider-LoadStaticContentAsync>d__24.MoveNext () (at <35a5c033de22407ba2ed9881b6f6d4e6>:0)
HG.Coroutines.ParallelProgressCoroutine+<InternalCoroutine>d__13.MoveNext () (at <252b0f5a2f1d4671be7eac97451a1156>:0)
HG.Coroutines.ParallelProgressCoroutine.MoveNext () (at <252b0f5a2f1d4671be7eac97451a1156>:0)
RoR2.RoR2Application+<LoadGameContent>d__70.MoveNext () (at <0f44b36eaa194934bb127b3fdd08e444>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <469e86e97fa2467ebffe49bbd6086325>:0)

death curse in prismatic trials

Describe the bug
The death curse artifact can show up in prismatic trials (using the offline prismatic trials from wolfoqualityoflife). this can happen even when disabled.

Captain gets his beacons back after getting revived

Describe the bug
When dying as a Captain with some of your beacons used, you will get those beacons back with the placed ones staying where they are.

To Reproduce

  1. Be a Captain, place some beacons
  2. Die and get revived

Expected behavior
You shouldn't get new beacons after getting revived.

Additional context
Unfortunately I don't have any logs for this, but this should be straightforward as is.

Mod is broken by patch 1.2.3

The most recent update (patch 1.2.3) has broken the mod.

To Reproduce

Steps to reproduce the behavior:

  1. Update to patch 1.2.3
  2. Open the game
  3. Check the available artifacts
  4. Start a new run

Current behavior

The mod's artifact is missing in the available artifacts
image

The user is shown a black screen instead when starting a run

20220419191736_1

The game would sometimes work normally up until the user would try to exit the escape pod, at which point the game would freeze, and the user can only pause the game and go back to the main menu.

As soon as the user starts the run and exits the pod, the following exception keeps on getting written to the log file so many times that the game/computer starts lagging.

[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
TeammateRevive.RunTracker.get_IsDeathCurseEnabled () (at <aeb998a1ba114dbfa5c12346a5ba4503>:0)
TeammateRevive.Skull.SkullLongRangeActivationManager.hook_Interactor_FindBestInteractableObject (On.RoR2.Interactor+orig_FindBestInteractableObject orig, RoR2.Interactor self, UnityEngine.Ray raycastRay, System.Single maxRaycastDistance, UnityEngine.Vector3 overlapposition, System.Single overlapradius) (at <aeb998a1ba114dbfa5c12346a5ba4503>:0)
DMD<>?-893309696.Hook<RoR2.Interactor::FindBestInteractableObject>?-720354816 (RoR2.Interactor , UnityEngine.Ray , System.Single , UnityEngine.Vector3 , System.Single ) (at <2199ddb2b3354fd497c55f03fe2da0a3>:0)
RoR2.InteractionDriver.FindBestInteractableObject () (at <7a5120bd69d843a8b8e90b8cce404663>:0)
RoR2.InteractionDriver.OnPreRenderOutlineHighlight (RoR2.OutlineHighlight outlineHighlight) (at <7a5120bd69d843a8b8e90b8cce404663>:0)
RoR2.OutlineHighlight.RenderHighlights (UnityEngine.RenderTexture rt) (at <7a5120bd69d843a8b8e90b8cce404663>:0)
RoR2.OutlineHighlight.OnRenderImage (UnityEngine.RenderTexture source, UnityEngine.RenderTexture destination) (at <7a5120bd69d843a8b8e90b8cce404663>:0)

Expected behavior

The mod's artifact should be visible in the available artifacts.

The game should run normally.

Additional context

Mods used:
BepInEx version 5.4.1903
HookGenPatcher version 1.2.3
R2API version 4.3.5
TeammateRevival version 4.1.0

LogOutput.log

Dead Man's Hand still spawns even when "Hide Death Curse mode items" is set to True

I'm not sure if this is a true bug or an intended feature, but the Lunar item "Dead Man's Hand" effectively cannot be disabled. Despite it being hidden from the log book when "Hide Death Curse mode items in logbook" is enabled, it still drops / spawns in lunar shops during a run. Even when "Hide Death Curse Artifact" is enabled, it still spawns.

I'm not sure what other info I can provide to be helpful, but let me know if there's anything I can do (Caboose12000#3908). Thanks!

"find" command bug

Describe the bug
"find" command in console returns "NullReferenceException: Object reference not set to an instance of an object" when TeammateRevival mod is active

To Reproduce

  1. Open console in-game (playing as a survivor to be more precise)
  2. Type - find "whatever you want 'spawn' is what I used"

Expected behavior
Expected it to list any commands with the characters "spawn" in them.


Doesn't seem to have an issue with any of the other commands. I'd rate this bug as a 1/10 on the (Needs to Be Fixed Scale) as anyone who really needs to find a command can still use "help"

Thought I'd still tell you about this little bug though

Disappearing totem issue 3.3.2

image in picture loch ness bombster has just died.
totem missing. x marker lasts for a few seconds then disappears. plaeyd a few mp games before updating worked fine. after update doesn't work.
image

image

Totem not spawning after first level of first run (ver. 3.3.4)

When playing on a lobby with 5 members (using toomanyfriends) the totem never spawns and disallows the ability to revive. Tried on a 2 player lobby and still the same result; no totem so no ability to revive.

Here is my mod list:
thingformod

Here is my log output:
logformod.txt

I will be available for the rest of the night if there are any questions and/or requests for more resources.

Incompatible Version 4.1.4

Describe the bug
I was trying to test compatibility between Refight and TeammateRevival, and I ran into an issue where both a friend and I have 4.1.4 installed, but it was throwing an error about needing 4.1.3 installed.

Oh and then we tried with 4.1.3 and it threw the same issue. Maybe this is just an us issue, though.

To Reproduce
Steps to reproduce the behavior:

  1. Install 4.1.4 via r2modman.
  2. Join a friend's lobby.
  3. Encounter an error.

Expected behavior
We should be able to just play with the updated version of the mod, but I guess we can't?

Additional context
Sadly we don't have logs of this occurring.
We do have the window saying.

Disconnected
Your mods differ from the server's mods. The game sessions cannot communicate.
== Incompatible Mods ==

== Required Mods ==
KosmosisDire.TeammateRevival;4.1.3

Only revived teammate gets cursed

Is your feature request related to a problem? If so, please describe.
I'm sometimes frustrated when I revive someone for the X times and also get the curse.

Describe the feature you'd like
I would like individual percentage bars in the settings, for the death curse chance for the one who gets revived and the one who is reviving.

Describe alternatives you've considered
An alternativ would be 2 checkboxes (in the settings) to select who gets the curse.

Additional context
Maybe this feature would also benefit from an ingame option to deny beeing revived while beeing dead.

Breaks and bugs PlayerBots mod

I know this isn't being maintained anymore but just letting people know if you have this mod installed along side PlayerBots it will bug them out, preventing them from moving or doing anything.

Optional "limited respawns" in config

Is your feature request related to a problem? If so, please describe.
I've noticed that teammate revives are, while handy, a bit strong for the game. Death has less been a worry and moreso an annoyance, but at the same time, a single death can also be a pain.

Describe the feature you'd like
To solve the above, I suggest limited respawns for those who want them. It'd still allow revives and the like while, at the same time, allowing for moments like having the last survivor standing.

Describe alternatives you've considered
I've considered changes to the default settings and the death curse, though there are some problems. Team revive becoming slower would make it more difficult, but in the end there's still that lack of threat. With death curse, not reviving a teammate for strategic reasons ends up making them feel left out more than if the respawn mechanic didn't exist.

Version without death curse option.

Is your feature request related to a problem? If so, please describe.
This is the teammate revival mod that I find the most appealing, but I don't like how it adds extra items to the logbook even without Death Curse mode enabled.

Describe the feature you'd like
A version of the mod that doesn't include Death Curse mode, or otherwise doesn't add extra items and inflate the logbook.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

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.