Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CrowdControl additions & improvements #5104

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

aMannus
Copy link
Contributor

@aMannus aMannus commented Mar 4, 2025

What this does:

  • Add ability for spawned enemies to have nametags of the viewer that spawned the enemy, using the existing name tag system.
  • Add ability to ignore spawned enemies for clear enemy rooms. Achieved by changing the actor's category to NPC.
  • Remove everything that is related to the bidding wars in CrowdControl. Apparently they're not planning on ever bringing them back, so away they go. This also meant the "Randomize Cosmetics" effect no longer needs to exclude the colors that would be set by the bidding wars.
  • Improve upon the decreased and increased speed modifiers. Before it was simply changing the max speed akin to the bunny hood, which was very easily circumvented by backwalking or sidehopping. It is now a pure multiplier to the player's velocity.

All of these changes are SoH clientside only except for the removal of bidwar effects, which weren't in use on CrowdControl's side anyway. Also of note, a lot of this is quite messy, although I feel like that goes for a lot of the effects currently. A lot of source code touched and the GameInteractorEffects stuff doesn't feel as great anymore.

Wether we want this PR cleaned up code-wise first (and subsequently probably a lot of other CC code) or not I'll leave up to others. If we do want it cleaned up more though it may take me a while to get to. Either way, until then, this'll be up for test builds.

Build Artifacts

Copy link
Contributor

@serprex serprex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks like cleanup relative to the previous code, even if there's room to clean up

if you'd like to sit on it for awhile it could make sense to split out removal of bidding in meantime

@Pepe20129
Copy link
Contributor

This will break hyper enemies as it relies on enemies being in the enemy category (except dark link).

@aMannus
Copy link
Contributor Author

aMannus commented Mar 4, 2025

This will break hyper enemies as it relies on enemies being in the enemy category (except dark link).

That's true. I honestly don't know how I would solve this elegantly.

@Pepe20129
Copy link
Contributor

My idea would be to add a field to the actor struct that gets set for these enemies and then VBing the check for clearing all enemies to ignore enemies with the field set (when crowd control is on).

@aMannus
Copy link
Contributor Author

aMannus commented Mar 4, 2025

We're gonna need that extendible actor data thing Proxy made for 2ship then. Adding it straight to the actor struct doesn't feel great. HarbourMasters/2ship2harkinian#1004

@Pepe20129
Copy link
Contributor

I agree, but it can work as a temporary fix while that gets ported over.

@garrettjoecox
Copy link
Contributor

Also of note, a lot of this is quite messy, although I feel like that goes for a lot of the effects currently. A lot of source code touched and the GameInteractorEffects stuff doesn't feel as great anymore.

I'd like to get rid of all of the class stuff involved with CC. I know it sounds primitive, but IMO it's simple enough and not touched often enough to just be like three big functions that are just switch statements. I think we abstracted here too early

@aMannus
Copy link
Contributor Author

aMannus commented Mar 4, 2025

I agree, my question was more if that should block these changes or not.

@garrettjoecox
Copy link
Contributor

I don't think it should. If this doesn't break anything in CC we should merge it and let the other stuff be a follow up from someone who has the bandwidth

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants