Commit Graph

18 Commits

Author SHA1 Message Date
LemonInTheDark 92f509ea80 Revert "Refactors how movetype flags are added and removed and the floating animation (#54963)" (#55432)
This reverts commit b8425c003a.
2020-12-09 19:30:28 -08:00
Ghom b8425c003a 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
2020-12-10 09:28:32 +13:00
Rohesie af65c90125 Mobility refactor: no more update_mobility() (#54183)
This is a pretty big change all around. The gist of it is that it moves the mobility_flags into traits or variables that can track the sources, and to which we can append code to react to the events, be it via signals or via on_event-like procs.

For example, MOBILITY_STAND could mean, depending on context, that the mob is either already standing or that it may be able to stand, and thus is lying down.

There was a lot of snowflakery and redefinitions on top of redefinitions, so this is bound to create bugs I'm willing to fix as I learn them.

The end-goal is for every living mob to use the same mobility system, for the traits to mean the same among them, and for no place to just mass-change settings without a way to trace it, such as with mobility_flags = NONE and mobility_flags = ALL

Fixes AIs being able to strip nearby people. They've lost their hands usage.
2020-10-09 16:04:30 -07:00
Jared-Fogle 45c14f6330 Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)
Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl
2020-08-20 09:11:28 +12:00
jdawg1290 62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
itseasytosee daf2e48c17 Clowns now require their shoes to slip people while laying down (#50650)
* powerclown

* Fix

* To chat

* You displease me

* Great

* awsum

* Update code/datums/components/slippery.dm

Co-Authored-By: JJRcop <jrubcop@gmail.com>

Co-authored-by: JJRcop <jrubcop@gmail.com>
2020-04-25 15:43:35 -04:00
spookydonut beca456c0f Add new lints (#49751)
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-03-09 22:13:48 -07:00
Qustinnus 0d46e6c441 You can no longer slip on fireman-carried clowns (#47000)
* trips

* yikes

* im braindead
2019-10-13 16:43:40 +13:00
Unknown df76d0dbb2 slip 2019-09-14 22:56:28 +02:00
Qustinnus 9812834054 Adds knight armour to the game that can be made from any material (#46301)
* Adds knight armour

* fixes armor

* nerfs & fixes

* adds ruin

* done

* bug

* oh im a buddy

* rad

* ok nem

* fix sprite

* fixes

* tgm

* epic

* re-adds icons

* fixes list

* ok ninja

* fixes

* fixed

* woops
2019-09-14 15:32:29 -04:00
kevinz000 2d0cac9d37 Removes stun and item drop from all slips. They will instead knock people down (force crawling) for their duration. (#41068)
image
I originally was going to cut stun/paralyze duration instead but since none of them will now hard stun I think it's fair for them to keep their original duration/power as knockdown.
2018-11-07 21:51:57 +13:00
Emmett Gaines 0943e56e08 Adds the signal origin as the first arg to all signals (#39861)
* Adds the signal origin as the first arg to all signals

* Fixes some storage and nanite procs
2018-08-28 18:28:29 +03:00
Emmett Gaines 34a3d2da4d Refactors component signals registration (#38798)
Datums know what signals are being listened for and components can now be registered to listen for signals on more than one object.
2018-07-05 00:56:39 +03:00
Jordan Brown 3aba012d67 Removes ComponentActivated in favor of callbacks (#33274)
* Removes ComponentActivated

* Removes a bit of proc call overhead

* Fix callback definition
2017-12-05 15:41:56 -06:00
Emmett Gaines d56a47253e Bitflag returns from component signals (#33186)
* For more useful returns from sendsignal

* removes a needless else/indentation

* cleanup
2017-12-01 14:09:25 -05:00
Jordan Brown 49feced945 RegisterSignal() can now accept a list (#31098)
* RegisterSignal may now accept a list of signals

* Update old calls to RegisterSignal()
2017-09-30 14:58:52 +02:00
Jordan Brown fc41bf41ef Cleans up component Initialization (#29891)
* Cleans up component Initialization

* Add LoadComponent()
2017-08-22 09:26:56 +12:00
Jordan Brown 3c56d0f4f3 Ports duplicated slipping code to a component (#29628)
* Ports duplicated slipping code to a component

* Makes metal not slippery

* asdf

* Instead of cherry picking like an idiot I could just copy paster

* OOP

* And blood, don't forget Fry's blood!

* Further fixes

* A more generic fashion

* Use the new system

* Fixes

* Fix cartridge type

* Remove inertia
2017-08-09 16:06:15 +02:00