[Suggestion] Stealth Effect Whitelist
RCalosena opened this issue · 16 comments
Simple suggestion, yet I have no idea how difficult it might be to implement. Basically, add a whitelist in the config that makes any potion effect in the list render the player as "invisible". This would be a nice way to add compatibility with mods like Corail Tombstone, that add effects that make you invisible, but do not work properly with this mod installed.
Ok, so the mod does add potion effects, just not potions for them. The scrolls give you potion effects...
...but I don't see one that makes you invisible.
I see "shadow step", an enchantment (not a potion effect) which has to do with visibility, and true sight, which IS a potion effect, but has to do with seeing invisible things, not becoming invisible.
Which mechanic are you talking about specifically?
I wanted to check the mod first since I'm not familiar with it, but Corail Tombstone doesn't seem to add any potion effects to the game, unless they're very well hidden. How do you normally enter this "invisible state" when using the mod?
@Laike-Endaril I confirm you that Corail Tombstone adds effects, scrolls and potions but none is to make a player invisible.
The scrolls may have effects related to others mods (theses modded effects can be blacklisted) and the scroll displays which mod is adding the effect.
Hey, sorry for the late response. I am referring to the Ghostly Shape effect. This effect makes you invisible to mobs but it is not just like invisibility because it gets removed if you bump into mobs, break blocks, open chests, etc.
What happens exactly when Dynamic Stealth is installed, is that you are effectively invisible, but the stealth gauge still triggers when a mob looks at you.
@Corail31
o/
In other words, the OP likely has some addon mod (or full mod with internal addon features) which adds a scroll to your mod through an API, and that scroll is supposed to have a stealth-like effect.
@RCalosena
I'm going to wait until I have the full details before working on this, to make sure whatever I implement is flexible enough to support the exact feature correctly. I would find it pretty strange for a mod to add any effect that simply makes you invisible, since vanilla already does that. It would be like adding another dirt block which is exactly the same as the vanilla dirt block...so I'm assuming there are circumstances for the stealth or other details I should know about.
Sounds good! I don’t know much about modding yet, so I thought adding compatibility was a bit harder, good to know it isn’t that difficult.
I do agree that many mods don’t have their own invisibility, but there are mods that add potion effects where it would be interesting to also make you invisible. Examples: Electroblob’s Wizardry has the Mirage effect that randomizes the location of your character’s model, but not your actual position, and due to that, this effect, as far as I know, only works on other players. The Transience effect from the same mod, puts you into a state that doesn’t let you attack and doesn’t let anything attack you (Im simplifying it), making it also interesting for it to make you invisible for the duration in which it’s active. I have other examples but I think you get the point.
Another reason why I think this whitelist would be cool, is because it would allow people to have both an effect that makes you totally invisible (from the whitelist), and an effect that makes you partially invisible (Invisibility, if you change the multiplier in the config).
Ah, I hadn't tried dying. This is an interesting mechanic, and I see what you mean now, at least for ghostly shape.
I feel like this is not an ideal solution for something like mirage, though. For that, I think a better solution would involve the creation of an actual targetable entity and tranferring enemies' threat toward you onto it (possibly along with visibility reduction as well). The creation of the entity would have to be done from ebWizardry if it doesn't already create an actual server-side entity (it might already, idk). The transfer of threat would more likely be a compat feature from my side.
From what you said, transience actually sounds like you should be visible, just not hittable...like enemies should try to attack you and fail (like a visible, but non-corporeal state), in which case it might be good as-is, or with a partial visibility reduction?
Just general thoughts...
I have this vague feeling that if I add a general-use list for potions that make you invisible, it will get used incorrectly more often than not and/or end up with a lot of feature creep for situational stuff, so I'm on the fence about that specifically, BUT I think the ghostly shape effect as it currently works should absolutely make you fully invisible, probably even bypassing soul sight (something that it wouldn't have done with a normal potion config!)
Basically, it's quite likely that more targeted compatibility for these will not only be less work on my end, but also more true to the mechanics. At this point, I plan to hard-code compat for ghostly shape either way, and will probably take a look at the others you mentioned to get a better feel for them. I'll probably postpone the decision on whether to actually make a potion list until after some of those are in and tested a bit.
I looked into transience and mirage from EBWizardry as well.
For transience, it looks like I was right; that spell is not intended to make you invisible at all. It's filling its own role as something that can make you into an invulnerable distraction (basically a tank-like functionality). I'm going to leave that one alone.
For mirage, unfortunately, it is not well-implemented. For players, it only randomizes where the model is rendered client-side (and makes the model translucent). This won't even work against any player with a client-side mod that shows health bars on entities or anything like that. For mobs, it simply makes you invisible, which doesn't really fit the idea of the spell and doesn't match what it does for players. It's a bit of a mess, and I don't want to touch it. :P
EBWizardry has added even more spells since I last looked at it...there are a LOT of them now. I'm not going to check every one of those myself to see if they should have compat, but if you have any more ideas for specific spells, let me know. I already have compat for at least some of them from years ago (mind trick, mind control, summons), but many of these spells didn't exist when I did that.
Yeah, those spells were ones that I gave as examples for a possible stealth-related use, though I agree with you, it’s better not to touch them.
Maybe Muffle is an interesting pick though. It is stealth related and it does seem to work as far as I know, but Im not sure how well it works with DS
Hrm...hearing-based systems have been on my todo list for years, but minecraft's sound handling is exceptionally bad and forge doesn't have any good hooks into it. Trying to do a "correct" hearing system is going to be a very large project if I ever get around to it. The ideal implementation of a "muffle" spell would be within this realm.
As far as the ACTUAL effect of the muffle spell goes, it basically says it makes enemies not see you when you're behind them. DS already does this by nature, so there is a lot of overlap here, and I imagine this spell's effects will be pretty minimal with DS installed unless it has a noticeably smaller FOV angle for mobs when active.
So I don't think I'll do that one either for now (sorry lol).
Alright, version 1.12.2.119 is released and available. It has compat for Corail Tombstone's ghostly shape, shadow step, and true sight. Notably, it has a config setting for shadow step in the Sight settings for DS (stealth multipliers).
If anyone sees this later, I decided against the exact feature in the issue title for now, and instead did more detailed compat for specific features from Corail Tombstone.
@RCalosena
I'm going to close this one, but if other specific compat features are wanted, feel free to open new issues for them and I'll at least take a look.
@Laike-Endaril Nice job ;)
@Corail31 Thanks, luckily this compat wasn't too complicated, other than making sure mechanics got applied in the right order