Commit Graph

771 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
Qustinnus 8737e8cb80 Small do-after refactor (#55172)
This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.

For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.

I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.
2020-12-07 13:04:51 -08:00
Timberpoes 5d6e6e81ab Extends the IC chat filter to be checked in two major renaming procs (#55217)
About The Pull Request

Honestly, I'm not sure this is the... Correct solution? But people more familiar with this will likely show me da wae.

Prohibits creating names that can't actually be spoken in-character due to chat filters by adding CHAT_FILTER_CHECKs to the procs that handle sanitising them.

For admin-utilised renaming procs, they'll be given a simple alert box to warn them their chosen name contains words prohibited by the IC chat filter and be allowed to confirm or cancel out.
Why It's Good For The Game

If you can't speak the name IC, chances are the name shouldn't be allowed at all. Players may occasionally be forced to ahelp certain names because they contain words prohibited in chat filters.
2020-12-03 09:07:11 +13:00
TiviPlus 0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
Ryll Ryll 5e878f504c Kills the quickswap shortcut (#55209) 2020-11-28 23:58:20 -08:00
Ghom 4c31b0e116 CanUseTopic() refactor. (#54747)
* CanUseTopic() refactor.

* Forgot about default_can_use_topic. Tested and working.

* Update bin.dm

* no-nonsense.
2020-11-25 13:12:12 +01:00
Ryll Ryll 0eea109ed6 Gulag teleporter now gives plasprisoners with nonstandard gloves a free pair (#54993)
* in memory of pax

* account for failure to equip

* adds qdel on fail to proc
2020-11-19 14:39:04 +01:00
Ghom 91bfedcd16 Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)
The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).
2020-11-10 15:15:31 -03:00
TemporalOroboros edd6500d78 /obj/screen --> /atom/movable/screen (#54403)
Repaths screen objects to /atom/movable
2020-11-08 23:07:15 -03:00
Rohesie 71455dcb1c Non-human mobs can now benefit from held id cards and economy. (#54647)
* Non-human mobs can now benefit from held id cards and economy.

* Moved these getters toward the upper end.

* oui?
...
dump eet.

* .tee pump
      ...
     ?iuo
2020-11-07 01:28:05 -03:00
Ghom 7f8fc21ec8 No more clickdragging one to another that isn't you doesn't opening inventory windows. (#54756) 2020-11-06 22:53:33 -05:00
Ghommie c9f0966156 Non-human mobs can now benefit from held id cards and economy. 2020-10-27 15:59:28 +01:00
Rohesie 192bfb5f4c Improves VV-related code (#54416)
VV-related code cleanup
    Added code to trigger the proper setters for several variables that have them.
    Added some admin logging for var-edit teleports.
    Cleaned-up some code all around.
2020-10-19 15:38:26 +01:00
zxaber 2fdf13f218 Activate Held Object and Drop hotkeys (Z and Q by default) now activate and store arm implant tools (#53893)
* Self_attack for arms if the hand is empty

* Oops

* Light runtime fix

This is not my runtime, but I will fix it all the same

* return better good

* How about a variable name that actually fits

* asdf
2020-10-16 20:44:22 -04:00
Yenwodyah 373356c445 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)
2020-10-15 23:27:54 -03:00
ZeWaka 9629feed35 Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
2020-10-13 16:43:53 -03:00
Qustinnus c796a7eb0b changes your cursor to an eye when you are holding shift to indicate you will examine (#54083) 2020-10-02 16:09:57 -07:00
Rohesie 3cc7733f34 Moblity refactor: hands blocked and restrained edition. (#53981)
Splits the restrained() proc into component traits: TRAIT_HANDS_BLOCKED for the general inability to use hands and TRAIT_RESTRAINED for the more specific condition that permits arrests.
    Code moved away from the update_mobility() proc so it doesn't have to wait for an update, instead changing based on events. The idea is to eventually kill that proc.
    Wrapper proc added for setting the handcuffed value so we can react to the event of it changing.
    Kills the RestrainedClickOn() proc. That is now just an UnarmedAttack(), in where the ability to use hands can be checked. Monkeys keep their bite attack and humans their self-examine.
2020-09-29 11:23:43 +01:00
Tad Hardesty f80836d00d Fix broken dmdoc crosslinks (#53896)
- Backtick-escape code samples which contain `[]` syntax.
- Fix all crosslinks to nonexistent symbols.
- Somewhat improve docs for qdel defines, research defines, dynamic mode, and others.
- Remove unused bloodcrawling defines.

Some crosslinks to defined but undocumented symbols remain. For BYOND builtins, a future dmdoc version may link those symbols to their entries in the DM reference. Other symbols could be documented by a future PR.

New "file" crosslinks as used in `research.dm` are slated for release in a future dmdoc version.
2020-09-23 03:47:44 -03:00
Timberpoes 94963c7489 Fixes oversight with "tactical combat spinning" and flashes (#53823)
Using the spin emote can no longer let you RNG your way out of new flash mechanics.

Mobs have a new flag that is set to when they start spinning and unset when they stop.

Flashes now use this new flag when calcing deviation.

Tactical combat spinning using the spin emote now results in a full deviation flash when it may previously have resulted in a failure or half-deviation flash.

Emotes should either not influence combat at all (spin on floor when both players share the same loc, this was already handled by same-loc code), or negatively influence combat for the emote user (spin in all other circumtances, which is what this PR addresses).
2020-09-20 06:51:08 -03:00
Azarak 91f897af09 Makes visible messages not be obstructed by darkness if you're next to the source (#53706)
If you're doing emotes in full darkness right next to someone, then the person won't see them, despite seeing your mob, which is counter-intuitive. This fixes that issue
2020-09-16 23:37:48 -03:00
MrMelbert d86f8eb907 Minor bugfixing/QoL for blind examining (#53313)
Allows blind people to examine things they're directly holding in their hands, so they don't need to swap hands back and forth between empty hands to check their ID or whatever

Slightly lowered the recent examine delay to make it easier to trigger examine_more

attack_hands that waited for input or slept (such as apiaries or airlocks) delayed the examination until after the attack_hand input or sleep was finished, so it is now called async to prevent the weird pause.

Blind people could previously examine things with disabled/detached limbs, that's fixed as well, and replaced a range check with adjacent, cause shoving your arm through windoors is bad.
2020-09-01 04:26:03 -03:00
TiviPlus ce3d7e2f0d Mecha refactor 2020 (#52902)
-Mechs are a vehicle subtype
-Mech equipment half-rewritten
-Mech actions completely redone
-Cooldown macros
-New movement macros & replacing all var in GLOB.diagonals with ISDIAGONALDIR(var)
-New lazylist macro
-Support for lavaland only mechs
-Removed the tank because fuck off with that hacky shit
-Documentation
-Fuckton of fixes
2020-08-29 23:33:47 -03:00
TiviPlus ca366c3ea1 Bools and returns super-pr (#53221)
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>
2020-08-28 14:26:37 -07:00
Couls e7f99e3b8b Browser Status Panel (#53112) 2020-08-27 15:28:03 -07:00
Ryll Ryll b64f2c0f2c Fixes quickswap letting you keep clothing traits (#52790)
Unequipping clothing via quickswap now properly calls dropped(), so you lose any traits you get for wearing them. This fixes being able to use the quickswap hotkey to keep traits and other properties like krav maga, sec/med/diagnostic hud's, and whatever else without actually wearing the clothing.

Fixes: #52788
Fixes: #50798

Why It's Good For The Game

Honestly for my money, a quickswap hotkey is lame and overly gamey, which is funny because the kind of player who would be into that is exactly the kind of player I'd suspect of quietly abusing a bug like this bug for the last several months, but I digress.
Changelog

cl Ryll/Shaps
fix: Quickswapping clothing now properly unequips the swapped-out clothing, removing any traits they granted while worn
/cl
2020-08-27 15:43:40 +12:00
Qustinnus 4925565a2b Adds an action speed modifier system (#53023) 2020-08-25 09:49:41 -07:00
Rohesie 988319b3e3 mobility refactor (#52929) 2020-08-24 13:56:07 -07:00
Rohesie 3a1020e47d Crit status refactor (#53117) 2020-08-24 07:41:00 -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
WarlockD 5c6da83db9 Update stat panel to give round time days. (#52986) 2020-08-18 21:52:35 -03:00
Jared-Fogle fa11c9c7be Messages sent by yourself no longer highlight (#52991) 2020-08-18 05:54:29 +03:00
Timberpoes d2fa99ff76 Telekinesis works on interacting with items. (#52834)
Rolls TK checks into baseline mob can_interact_with code.

TK check code unashamedly stolen from /mob/living/carbon/human/shared_living_ui_distance

This change touches every single can_interact interaction involving a mob and an atom, except /obj/machine which overrides can_interact without calling the parent and thus is unaffected by this change.

It enables any functionality that would require a can_interact() check to return TRUE. It effectively works alongside the adjacency check and comes into play if the adjacency check would fail.
2020-08-11 15:51:33 -03:00
Timberpoes 19c3bbde31 Cleanup up all instances of using var/ definitions in proc parameters. (#52728)
* var/list cleanup

* The rest of the owl

* plushvar bad

* Can't follow my own advice.
2020-08-07 12:23:42 -03:00
TiviPlus 8d72c64910 Lazylists some /mob and /living stuff (#52750)
* lazy

* Apply suggestions from code review

Co-authored-by: Rohesie <rohesie@gmail.com>

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-07 12:09:16 -03:00
skoglol 9ce3040f81 Merge pull request #52727 from MrMelbert/touchyfeely
Allows blind people to touch things to examine them
2020-08-07 08:35:23 +02:00
MrMelbert f14abf747b no more help 2020-08-05 21:06:12 -05:00
MrMelbert 3f6e6ef5b4 Braille 2020-08-04 15:01:09 -05:00
Rohesie 32ae206794 Fixes seeing audible emotes on runechat while deaf (#52584)
* deaf folk

* no blind
2020-08-04 10:11:10 +02:00
Rohesie ac64362c11 Admins can respawn (#52567)
* respawn

* changes

* spawn

* R_ADMIN
2020-07-30 02:25:02 -04:00
Wayland-Smithy 2aa17c8f76 fix runechat see emotes pref 2020-07-24 21:03:30 -04:00
Jared-Fogle c3fd280a01 You can now take off clothes while on stasis 2020-07-21 23:16:55 -07:00
L c55025a50f rename 2020-07-19 22:11:44 -03:00
L 9ee2907a68 runechat emotes 2020-07-19 22:11:44 -03:00
Ryll-Ryll 7f15be7f68 Merge branch 'master' into who-named-this-damned-proc 2020-07-11 23:30:49 -04:00
Ryll-Ryll fc0b247738 rename 2020-07-11 23:23:23 -04:00
Ryll Ryll 4a481bc861 Adds eye contact (#52108)
* doesn't do it for me

* signal and hijinx

* creep stare

* less lazy code
2020-07-12 03:39:57 +10:00
ShizCalev 7503d6be47 Fixes buckled mobs sometimes z fighting with what they're buckled too 2020-07-04 04:04:00 -04:00
Rohesie 62802b2ba0 mobs no longer hard delete by default (#51887)
* hard delete

* doc
2020-06-30 10:43:06 -04:00