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

Make the explosions throw the container/item they originated from #32428

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

Conversation

SaphireLattice
Copy link
Contributor

About the PR

Makes the containers containing an explosive (and maybe the explosive itself if it's multitrigger? didn't test) fly away from the epicenter in a random direction.

Why / Balance

Container bombs leave a weirdly still container at the exact spot things detonated. Also if something manages to explode second time, it will happen in an entirely different spot than the first explosion.

Technical details

In explosion throw direction processing code, adds a check for null vector. Generates a random one of normalized magnitude if it is null.

Media

Tested with another edit that makes minibomb not go off right away:

Peek.2024-09-24.12-47.mp4

Requirements

Changelog

🆑

  • tweak: Explosives throw a container they are in

Extra fun if it's something that can trigger multiple times
@VasilisThePikachu VasilisThePikachu added the Undergoing Maintainer Discussion This PR is currently going through the 72-hour discussion window as per maintainer policy label Sep 24, 2024
@@ -488,9 +488,12 @@ private void ProcessEntity(
&& physics.BodyType == BodyType.Dynamic)
{
var pos = _transformSystem.GetWorldPosition(xform);
var dir = pos - epicenter.Position;
if (dir.IsLengthZero())
dir = _robustRandom.NextVector2().Normalized();
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
dir = _robustRandom.NextVector2().Normalized();
dir = _robustRandom.NextVector2();

NextVector2 already returns a normalized vector if you don't pass a magnitude.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

NextVector2 actually will generate a vector with magnitude between 0 and 1 (excluding), according to comment and code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Undergoing Maintainer Discussion This PR is currently going through the 72-hour discussion window as per maintainer policy
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants