BeeStation-Hornet icon indicating copy to clipboard operation
BeeStation-Hornet copied to clipboard

Experimental z-mimics support codes (Likely draft, but IMPORTANT)

Open EvilDragonfiend opened this issue 10 months ago • 5 comments

About The Pull Request

Experimental z-mimics support codes This makes multiple things to support mimic atoms follow things that doing original atom is doing.

THINGS TO REMIND

animate() proc should be NOW stored if this is currently used or not This is because newly created z-mimics after animate() is executed doesn't know if it should do that animation this means we should make a new proc safe_animate() that'll save its values for new z-mimics

REMIND 2

This PR should refactor whole animate and image codes to follow z-mimics

Why It's Good For The Game

likely bug fix and supports

Testing Photographs and Procedure

  • Animate z-mimic https://youtu.be/cba02C_LtGY
  • copy-pasta images into client image https://youtu.be/5oJc0tfLP4E
  • Smooth projectile copy https://youtu.be/5oJc0tfLP4E

Changelog

:cl: code: Improved z-mimic codes fix: Projectiles will now properly displayed when you see those from above (i.e. Emitter beams) fix: some animations are now displayed when you see them from above. /:cl:

EvilDragonfiend avatar Apr 13 '24 06:04 EvilDragonfiend

image

I don't like this edge case...

EvilDragonfiend avatar Apr 13 '24 07:04 EvilDragonfiend

I heavily dislike huge systems like this that require completely changing how we do stuff. Animations haven't been a huge big of an issue, people jumping I'm 99% sure shows up on z-mimic and they already smoothly walk around which is animated so this is just cleaning up some minor edge cases for a huge cost. If you can point to me something that is major and really, really needs animations that doesn't already have it then I might be on board

PowerfulBacon avatar Apr 13 '24 08:04 PowerfulBacon

DNM since I don't want this being yolomerged

PowerfulBacon avatar Apr 13 '24 08:04 PowerfulBacon

Honestly I am also the one who heavily dislikes doing this but I can't think any better way solving the issue than this. The point here is that everything should be changed consistently when z mimics exist. If you have ever seen emitters in echo station, you can see that doesn't look that nice. Emitter beams are teleporting because it's disconnected from how pixel movement from projectile works.

Note that we have a lot of things that need to reflect atom appearance to z mimic including atom_hud, unedited animate() procs, client.image += things blabla. I don't think any of those managing manually without the define macro I showed will be any better.

EvilDragonfiend avatar Apr 13 '24 09:04 EvilDragonfiend

I had to leave before finishing posting.

I'm 99% sure shows up on z-mimic

That's because only single line of the code managed that already, and I replaced it into my new while loop.

and they already smoothly walk around...

It's Byond movement thing, but the PR isn't trying to solve it.

...which is animated so this is just cleaning up some minor edge cases for a huge cost.

It is not "minor" edge cases. There are a lot of cases but I didn't pay more effort because I already knew this PR would be scowled absolutely.

If you can point to me something that is major and really, really needs animations that doesn't already have it then I might be on board

I will bring more changes to the PR, like I said, I knew people wouldn't like this and I didn't want doing much effort. I hope massive change for more files would change your idea.

EvilDragonfiend avatar Apr 13 '24 10:04 EvilDragonfiend