-
-
Notifications
You must be signed in to change notification settings - Fork 680
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
Fixes Particle Accelerators being unable to activate tesla/singulo engine. #9942
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had no idea this was even broken
Not sure how I feel about the solution, I feel like the phasing flag should have more emphasis than the peircing one, since if something has piercing: ALL and phasing: ALL, then it should phase through things rather than peirce them. This could lead to some knock on effects. Either way the projectiles need to be configured such that their piercing and phasing don't overlap, otherwise its going to lead to confusing. The sniper rifle shouldn't have ALL on both otherwise it will be confusing as to which one should act. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Projectiles need to maintain an xor property between phasing and piercing, we don't want a flag enabled on both of them as this leads to confusion as to whether the projectile will pierce or phase when reading the code.
Unfortunately when #9700 was ported it introduced a new flag that posed a problem to this logic since it's by default on all machines, but is more of a behaviour flag that can apply to anything else as well. You'd have to memorize that this flag exists in certain niche scenarios which doesn't seem like a great way to do it, for example all machines have it by default. In addition it's vague and you wouldn't be easily able to tell what has it in the future, given the name is (Only just now realized I quoted the wrong text, the relevant text is now quoted) |
Which could mean that you'd have to keep track of everything that has As for the confusion, we could just add a comment describing the behaviour since I don't think it's actually described at all currently. |
Perhaps I can make it so the code can get a list of technical pass flags like |
About The Pull Request
Fixes #9887
This fixes a bug that prevented players from making singulos/teslaballs, due to some bad projectile code. So I touched it up and made it so that Piercing behaviour comes before Phasing behaviour- since they're identical but one hits and the other doesn't.
So now the game will try to hit something while passing through before doing nothing while passing through.
as opposed to
Why It's Good For The Game
Touches up some bad code behaviour so that's it's less so, and fixes a feature that is supposed to work.
Testing Photographs and Procedure
Screenshots&Videos
EnergyGoesUp.mp4
SinguloForms.mp4
TeslaballForms.mp4
BlobHit.mp4
Also touched the sniper penetrating rounds while cleaning up too- so here's evidence that it still works:
SniperPenetratorStillWorks.mp4
Changelog
🆑
fix: The Particles shot out of the Particle Accelerator no longer phase through machines
code: In Projectiles, Piercing behaviour is now prioritized over Phasing behaviour (the difference between the two is whether it deals damage as it's passing through)
/:cl: