* Refactors how movetypes are added and removed, No timers this time. (#55444)
* Refactors how movetypes are added and removed, No timers this time.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Refactors how movetype flags are added and removed and the floating animation (#54963)
I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game
A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.
Tested, but i'm pretty sure improvements could be made.
Changelog
cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl
* Refactors how movetype flags are added and removed and the floating animation
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Implements timed_action_flags for do_after-like procs (#54409)
Originally I wanted to fix an issue where the `get_up()` `do_after()` would ignore the callback checks, because it was `uninterruptible`, so that made me refactor these procs to allow for higher granularity on checks and standardize behavior a bit more.
There's more work to be done for them, but one thing at a time.
* Removes the `uninterruptible` check in favor of the more granular `timed_action_flags`
* Cleans code on the `do_atom`, `do_after_mob`, `do_mob` and `do_after` procs to standardize them a little better.
* Implements timed_action_flags for do_after-like procs
* Update horror_form.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Buckling cleanup and documentation. Borg buckle time tweak. (#54402)
Added / improved documentation for buckling procs and variables
Removed / moved some unused things (removed 'buckling' var on mob, moved can_unbuckle() and can_buckle() from mob to living, removed can_unbuckle() and can_buckle() from slimes because they were ignoring everywhere it was checked anyways)
Moved can_buckle() check to is_buckle_possible() with the rest of the checks
Allowed mobs to buckle other mobs to things on the same turf as them ( I don't see why this was blocked in the first place. We have mobs on the same turf as each other all the time)
Changed silicons to use user_buckle_mob() instead of their own do_after system - now slightly longer to buckle mobs from another turf but instant to buckle mobs from the same turf. This means that borgs can't combatspin people who are still standing but have a slight slowdown, but can load people even faster if they're stunned/incapacitated and lying down. (But honestly, I did it for consistency, not balance)
* Buckling cleanup and documentation. Borg buckle time tweak.
Co-authored-by: Yenwodyah <yenwodyah@gmail.com>
* You can buckle yourself or somebody else into a chair, if you're next to the chair. (#53255)
You can now buckle yourself, as well as others, into a chair as long as you (and the other person, if you're not buckling yourself) are Adjacent to said chair, and being on the same tile as the chair is no longer required.
No more god-awful pixelhunt to accomplish a very simple task.
(You can buckle yourself and others into chairs that you're right next to, instead of needing to be on top of the chair to do it.)
* You can buckle yourself or somebody else into a chair, if you're next to the chair.
Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Smooth Movement: Resurrection: Resurgence: Revengeance 4: The Return of Smooth Movement: Smooth Edition Director's Cut (#52515)
Automatic glide size adjustment based on move delay.
Essentially a port of https://github.com/yogstation13/Yogstation/pull/8132 but that was mostly my code with some fixes.
Why again? well it turns out the recent byond fixes to glide size actually worked and solved the issues that were unsolvable.
https://file.house/0B3u.mp4
Glide size no longer incorrectly scales at fps, so it works as intended at any framerate with the only stuttering being normal byond suck stuttering.
* Smooth Movement: Resurrection: Resurgence: Revengeance 4: The Return of Smooth Movement: Smooth Edition Director's Cut
Co-authored-by: Rob Bailey <actioninja@gmail.com>
* immobilized (#52578)
Adds an immobilized trait.
Adds procs for several variable changes so we can respond to their events.
Adds some signals for said variables changing.
Need to turn the variation in number of usable legs and arms (get_num_legs() and get_num_arms()) into events we can respond to, but they are pretty annoying to do so. Probably for a different PR.
* Immobilized trait
Co-authored-by: Rohesie <rohesie@gmail.com>
* Converts everything to use setAnchored() + other fixes
* Fixed singulo debug
* singulo again
* forgot to move the vv_edit proc
* caught that this time :)
* changes
* Update code/game/atoms_movable.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* You can now fireman carry people onto trays
* Support putting fireman carried people to buckle
* Reverse conditions
* Only attach to bucklables if adjacent, and forcably move to the turf so you don't just drop them
* Smooth movement
Squashed commit:
[870d550fff] updates a variable name to not shadow a parent variable
[65131a9a4b] redundant
[7c85f7b87e] override based pulling and pushing
[60a9760c4b] unnecessary when it's done via an override
[0a67dfb3cb] removes a redundant manual override
[7f25104fed] pushing
[2bfd9973eb] eh
[fca7155245] cast properly
[ad4b9ad8ab] compile fix
[c28fde4bfb] some wonkiness with pulling fixed
[0e028d30b3] buckling fix + finer rounding
[8f93df2bbe] dragging + buckling fixes
[1541e1ce78] small optimization
[bda72345dd] smoother movement
fix to dragging being fucky
vehicle fix
orbiter fix
eof newline
cleanup
comment cleanup
stupid hack
bunch of tweaks/hacks + 60 fps default oh god
potential fix for orbiter issues (in a shitty way)
early override for some cases
unset orbit
multiply instead of add offset
no
no more timescale scaling and higher multiplier
meant to include this in last commit
comment
* clamp to 6, 1.25 multiplier
* (poorly) fixed buckles not always propagating
* get rid of some debug prints whoops
* fixes an infinite loop
* syntax + update savefile instead of interpreting 0 different
* uuuh
* Adds mutually exclusive Clown and Mime Fan traits based off of Spiritual quirk
* Adds positive moodlets for sitting in rooms, adds pins and moodlets for pins
Need to figure out why the progress bar for being buckled doesn't show up.
* I forgot that Spiritual is 1 point.
* Reverts examining for mood boost and room mood boost events
* Adds sorting to most input() lists.
* Sorted some global lists, added more input sorting
* Should now use correct sort everywhere.
* compiles
* Last fixes.
* Reverts italics-span back to no color.
* Cleans up many extra spaces and indents.
* Adds 'hear' span class.
* Replaces all 'italics' used in heard messages with 'hear'.
About The Pull Request
Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game
This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
In other words, you can now dance.
@subject217
cl
experimental: Mobs now turn towards anything grabbing them when they move.
experimental: Mobs are shifted towards anything grabbing them based on move state too. You can now dance by grabbing each other!
/cl
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.
Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove
cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
All uses of "the [src]" have been fixed, as well as other bad string
interpolation directly adjacent to such uses.
In addition to its message, the circumstances under which the tracking
implant locator fails have been updated to use the correct define,
malfunctioning on CentCom rather than on the station.
* Shows a warning to the player trying to move while buckled.
* Adds cooldown.
* Moves the relaymove()-based message to atoms.dm
* Adds a custom buckled alert icon.
* Arranged screen_alert.dmi contents into an alphabetical order.