Skip to content

Conversation

@DeltaFire15
Copy link
Contributor

About The Pull Request

Have you ever wondered why that one chair on the Atlas bridge seems to get punctured by railguns far more often than other places?
Well, relayed projectiles aren't actually fully random but tend to always target the exact z center.
This makes certain locations in the exact center quite hazardous vs. piercing projectiles.

This PR changes that, by adding a degree of randomness (+- 20° angle) to relayed projectiles, making them not target the exact center tile, only center-ish.

In addition because I wanted to do it since a while, relayed projectiles now determine the side of the ship they hit from depending on their angle when hitting the ship. I've thought a while about how to best determine the side and this feels like the most consistent, with our somewhat wacky physics.

Also moves the projectile quadrant impact calculations to use that same logic because it should feel more consistent.

Why It's Good For The Game

Less getting porcupined because your chair was in the wrong place, more being able to yell at bridge if the side you really don't want hit keeps being exposed.

Testing Photographs and Procedure

Fairly tested; Though probably something to gauge the feels of.

Changelog

🆑
tweak: Relayed projectiles now have a higher degree of targeting randomness.
tweak: Relayed projectile starting sides are now determined by the angle of the original projectile.
tweak: Projectile impact quadrants are now determined by projectile facing rather than relative position to ship (hopefully feels more accurate).
/:cl:

also makes relayed projectiles respect impact angles.
namely, the angle of the projectile itself is taken into account (reads: flying into a projectile going left while facing north causes relaying on the right side, not front.)
changes projectiles to decide armor quadrant they hit by their own angle instead of relative angle; should feel more accurate on average.
@DeltaFire15 DeltaFire15 added Tweak Overmap This issue or PR is related to overmap interactions labels Sep 9, 2025
@github-actions
Copy link

github-actions bot commented Dec 1, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@DeltaFire15
Copy link
Contributor Author

DeltaFire15 commented Dec 2, 2025

Woo, no more conflicting with myself!

var/startside = pick(GLOB.cardinals)
var/turf/pickedstart = spaceDebrisStartLoc(startside, theZ)

var/effective_angle = (720 + original_proj_angle - angle) % 360 //Don't ask, I don't trust angles to be positive anymore.
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm going to make a proc for this at some point there are so many of these in the code

@Bokkiewokkie Bokkiewokkie merged commit cb6b24f into BeeStation:master Jan 3, 2026
9 checks passed
@DeltaFire15 DeltaFire15 deleted the relaying_entropy branch January 7, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Overmap This issue or PR is related to overmap interactions Tweak

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants