Commit Graph

63 Commits

Author SHA1 Message Date
SkyratBot
b99cbab577 [MIRROR] Fixes blocking movement being weird (#26538)
* Fixes blocking movement being weird (#81505)

## About The Pull Request

I was failing to clear the input removal if we had no movement So you'd
step, stop moving, and retain it

Then whenever we rotate, we continue to hold onto that removal forever.
Weird.

Handles... part of? #81501

## Changelog
🆑
fix:Blocking movement works properly again
/🆑

* Fixes blocking movement being weird

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-02-17 08:25:51 -05:00
SkyratBot
4c0fd903f3 [MIRROR] bindable action buttons (#26536)
* bindable action buttons (#81371)

## About The Pull Request
### work started 12/12/2023

you may alt-click action buttons to bind them to a key
these are subject to click cooldown and if an action successfully
triggers click cooldown is triggered so you cant instantly do multiple
alt-click again to unbind
## Why It's Good For The Game

moving your mouse to the top left corner to do combat is not good
gameplay

## Changelog
🆑
qol: you may altclick action buttons to bind them to a key
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* bindable action buttons

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2024-02-17 08:24:48 -05:00
SkyratBot
5a496e9842 [MIRROR] Micro-Optimize keyLoop's self time (#26513)
* Micro-Optimize keyLoop's self time (#81464)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

This is a REALLY hot proc, takes up to like 2% of total cpu at highpop
Let's micro it then

First, clients do not go null at random. It's not predictable per say
but it is consistent.
We can use this understanding to remove a bunch of null checks here

For loops are expensive. So rather then doing one each keyLoop, let's
cache the client's intended move direction on the client. Simplifies
some other code too

There is no sense running a turn call if it would have no effect, let's
be more intelligent about this

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
refactor: Fucks with how movement keys are handled. Please report any
bugs
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Micro-Optimize keyLoop's self time

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-02-15 17:38:09 -05:00
SkyratBot
a4385cd254 [MIRROR] Fixes Mech Strafing [MDB IGNORE] (#25076)
* Fixes Mech Strafing (#79749)

## About The Pull Request

Holding alt to turn while strafing in a mech actually works now.

Closes #54727

## Why It's Good For The Game
Fixes a thing that was broken

## Changelog
🆑
fix: You can once again use alt to turn while strafing in a mech
/🆑

* Fixes Mech Strafing

---------

Co-authored-by: SapphicOverload <93578146+SapphicOverload@users.noreply.github.com>
2023-11-17 23:36:10 -05:00
coldud13
6d7d36a0fc [MANUAL MIRROR] Adds message clarifying that you've been KICKED from the game when th (#21136)
Adds message clarifying that you've been KICKED from the game when the keysend flood autokick triggers. (#72083)

There is now a message clarifying that you've been KICKED from the game when the keysend flood autokick triggers.

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2023-05-15 01:17:36 -07:00
lessthanthree
12d989be4c [MANUAL MIRROR] Adds an Escape Menu (#19217)
* Adds an Escape Menu (#72906)

* suicide

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-02-08 02:20:09 +00:00
SkyratBot
d8da1153b7 [MIRROR] Biddle Verbs: Queues the Most Expensive Verbs for the Next Tick if the Server Is Overloaded [MDB IGNORE] (#15329)
* Biddle Verbs: Queues the Most Expensive Verbs for the Next Tick if the Server Is Overloaded (#65589)

This pr goes through: /client/Click(), /client/Topic(), /mob/living/verb/resist(), /mob/verb/quick_equip(), /mob/verb/examinate(), and /mob/verb/mode() and makes them queue their functionality to a subsystem to execute in the next tick if the server is overloaded. To do this a new subsystem is made to handle most verbs called SSverb_manager, if the server is overloaded the verb queues itself in the subsystem and returns, then near the start of the next tick that verb is resumed with the provided callback. The verbs are called directly after SSinput, and the subsystem does not yield until its queue is completely finished.

The exception are clicks from player input since they are extremely important for the feeling of responsiveness. I considered not queuing them but theyre too expensive not to, suffering from a death of a thousand cuts performance wise from many many things in the process adding up. Instead clicks are executed at the very start of the next tick, as the first action that SSinput completes, before player movement is processed even.

A few months ago, before I died I was trying to figure out why games at midpop (40-50 people) had non zero and consistent time dilation without maptick being consistently above 28% (which is when the MC stops yielding for maptick if its overloaded). I found it out, started working on this pr, then promptly died. luckily im a bit less dead now

the current MC has a problem: the cost of verbs is completely and totally invisible to it, it cannot account for them. Why is this bad? because verbs are the last thing to execute in the tick, after the MC and SendMaps have finished executing.
tick diagram2
If the MC is overloaded and uses 100% of the time it allots itself this means that if SendMaps uses the amount its expected to take, verbs have at most 2% of the tick to execute in before they are overtiming and thus delaying the start of the next tick. This is bad, and im 99% sure this is the majority of our overtime.

Take Click() for example. Click isnt listed as a verb but since its called as a result of client commands its executed at the end of the tick like other verbs. in this random 80 pop sybil round profile i had saved on my computer sybil 80 pop (2).txt /client/Click() has an overtime of only 1.8 seconds, which isnt that bad. however it has a self cpu of 2.5 seconds meaning 1.8/2.5 = 72% of its time is overtiming, and it also is calling 80.2 seconds worth of total cpu, which means that more than 57.7 seconds of overtime is attributed to just /client/Click() executing at the very end of a tick. the reason why this isnt obvious is just because the verbs themselves typically dont have high enough self cpu to get high enough on the rankings of overtiming procs to be noticed, all of their overtime is distributed among a ton of procs they call in the chain.

Since i cant guarantee the MC resumes at the very start of the next tick due to other sleeping procs almost always resuming first: I time the duration between clicks being queued up for the next tick and when theyre actually executed. if it exceeds 20 milliseconds of added latency (less than one tenth the average human reaction time) clicks will execute immediately instead of queuing, this should make instances where a player can notice the added latency a vanishingly small minority of cases. still, this should be tm'd

* Biddle Verbs: Queues the Most Expensive Verbs for the Next Tick if the Server Is Overloaded

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2022-07-31 22:03:59 +00:00
SkyratBot
583a5e704a [MIRROR] Fullscreen, status bar hiding, chat input following the theme [MDB IGNORE] (#14555)
* Fullscreen, status bar hiding, chat input following the theme (#67987)

* Initial commit

* input is colored according to the theme

* removed unused setting

* Fullscreen, status bar hiding, chat input following the theme

Co-authored-by: Andrew <mt.forspam@gmail.com>
2022-06-27 02:15:25 +01:00
SkyratBot
3f95ebbd5e [MIRROR] Fishing, Version 1 [MDB IGNORE] (#14370)
* Fishing, Version 1 (#67691)

Adds fishing and fishing minigame.
You use fishing rod to fish.
Equipping specific bait/hook/reels will affect your success chances.
You can fish out fish,items and other things.

Fishing Equipment
Fishing rods have three slots: Bait, Reel and Hook.
Any food can be used as bait but dedicated bait makes fishing easier.
You can buy hook and line sets
New bait types:

Worms : Buy can of them at cargo (alternative acquirement method pending)
Doughballs : Use knife on flat piece of dough to get five of them.
Fishing rod types:

Basic : Print these at the lathe, nothing fancy here.
Tech: Experimental tech. Provides infinite bait
Fishing rods can also hook and reel normal items.

Equipment screen and reeling video
Fishing spots
Keep in mind this PR is meant to add the basic systems and i intend to fill these with more fish in future PR's so wait with suggestions until then.

Lavaland lava (no fish here right now, just other stuff), requires reinforced line to fish in.
Maintenance moisture traps.
Beach away mission water.
Fishing portal available for purchase from cargo - This is stopgap until we fill more spots.
Difficulty depends on fishing spot, fish type, and the fish traits and rod setup combinations.
All fish types can have specific traits, most common ones being favourite and disliked bait types/categories.

Other
Fishing catalog now lists fishing related info
New admin debug verb, fishing calculator that show probabilities with different setups so it's easier to balance this.
Fish now have average weight and size. Make sure to boast if you catch a big one.
Adds tgui mouse passthrough
Screens
Sprites:

Fishing portal sprite by @ ArcaneMusic
Other sprites by @ Mey-Ha-Zah
Bad ones by me. (Could still use better fishing minigame backgrounds)
Sounds:

https://freesound.org/people/soundscalpel.com/sounds/110393/
https://freesound.org/people/soundslikewillem/sounds/343748/

* Fishing, Version 1

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-06-17 00:30:40 +01:00
SkyratBot
f39eb86480 [MIRROR] better fix for some runtimes with clients in player_list (maybe) [MDB IGNORE] (#8778)
* better fix for some runtimes with clients in player_list (maybe) (#62028)

* better fix for some runtimes with clients in player_list (maybe)

Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
2021-10-13 19:08:49 +01:00
SkyratBot
124ddd7cca [MIRROR] tgui Preferences Menu + total rewrite of the preferences backend (#8153)
* tgui Preferences Menu + total rewrite of the preferences backend

* nah, we dont need to ping those people

* trying to remove the funny stuff

* unmodularizing this

* prefs reset

* this may need to be reverted, who knows

* okay, this part

* perhaps

* EEEEEEEEE

* unsanitary

* E

* Stage 1 + loadout system

* more fixes

* E

* I mean, it launches?

* More fixes and reorganisation

* E

* customisation code is spaget.

* disable ERP prefs

* Update erp_preferences.dm

* Update erp_preferences.dm

* E

* Slowly getting there

* It may be time for help :)

* tri...colors... help

* preferences now pass preferences

* Update dna.dm

* Fuck this man

* missing savefile return, set_species works, removed dumb stuff from updateappearance

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8199

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8224

* https://github.com/tgstation/tgstation/pull/61519

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8278

* e

* le butonAZARAK HELLO

* hhh

* Proper recognition where it's due, MrMelbert!

* EEEE

* examine block

* Better gen hit sounds from whitedream

* final loadout touches, more bug fixes im sure to come

* i said there would be bugfixes

* Update LoadoutManager.js

* Missing preferences in the html menu

* LIVE TESTING PHASE BABY

* Update LoadoutManager.js

* EEE

* LAUNCH TEST FIRE

* Update job.dm

* Update new_player.dm

* 50gb DAY ONE PATCH

* EEE

* Update preferences.dm

* buggle fixes

* Update examine.dm

* >LOOC starts on

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-09-23 00:40:37 +01:00
SkyratBot
2cef943f6f [MIRROR] Revert "Prevent SSinput from constantly requesting moving in-place" (#6352)
* Revert "prevent SSinput from constantly reporting null movements (#59558)" (#59650)

This reverts commit 6c2d17bb15.

Fucky movement fix oranges is literally threatening me.

I feel like I've messed up somewhere here...

Either way this is causing movements to be a bit fucky where one input counts as two in a direction.

* Revert "Prevent SSinput from constantly requesting moving in-place"

Co-authored-by: brotherbeyondd <68032262+brotherbeyondd@users.noreply.github.com>
2021-06-16 22:23:09 +01:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
SkyratBot
2ff93b78d0 prevent SSinput from constantly reporting null movements (#59558) (#6208)
Just prevents SSinput from constantly calling Move() every tick for every user even when no actual movement is requested.

Only done rudimentary testing - straightforward and we've been using this for months on CM13 but without diagonal movement.

I asked the original SSinput author back then which said that it was likely an oversight. I believe moving the diagonal movement direction buffer reset to keyLoop instead of Move() also makes sense as it is actually relevant to SSinput and not client actions as a whole (eg. if you call built-in movement verbs)

Co-authored-by: fira <loyauflorian@gmail.com>
2021-06-10 09:14:50 +12:00
SkyratBot
c0830c5fcd [MIRROR] Removed proc overhead from the Input subsystem (#6010)
* Removed proc overhead from the Input subsystem (#59339)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Removed proc overhead from the Input subsystem

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-05-28 16:41:19 +01:00
SkyratBot
faadd3c29e [MIRROR] Kills twitching corpses dead (#2243)
* Kills twitching corpses dead (#55600)

* is this legal

* softcrit is okay

* Kills twitching corpses dead

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-12-19 12:09:52 +00:00
SkyratBot
5ecf8454d0 [MIRROR] Movement now works in any client dir (#1701)
* Movement now works in any client dir (#54693)

Movement now works even if client dir is changed
maybe someday we can have rotating views

* Movement now works in any client dir

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-11-17 00:23:30 +01:00
SkyratBot
dc7d9a81a1 [MIRROR] Fix Map JSON loading errors (#1460)
* Fix Map JSON loading errors (#54563)

Also fixes that one runtime everyone runs into when they first load in

* Fix Map JSON loading errors

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-10-25 11:11:00 +01:00
SkyratBot
fb51202dda [MIRROR] changes your cursor to an eye when you are holding shift to indicate you will examine (#1124)
* changes your cursor to an eye when you are holding shift to indicate you will examine (#54083)

* changes your cursor to an eye when you are holding shift to indicate you will examine

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-10-03 02:31:19 +02:00
SkyratBot
cf76ee5b1a [MIRROR] Communication hotfix (#1062)
* Communication hotfix

* bah

* Update preferences.dm

Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-30 01:12:57 +02:00
SkyratBot
d394f912a0 [MIRROR] Fixes cases of held keys getting stuck (#1034)
* Fixes cases of held keys getting stuck (#53988)

* Fixes cases of held keys getting stuck

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-09-29 12:23:22 +02:00
SkyratBot
79e0e3c972 [MIRROR] remove obsolete face-dir keybinds (#984)
* remove obsolete face-dir keybinds (#53925)

* remove obsolete face-dir keybinds

Co-authored-by: Couls <coul422@gmail.com>
2020-09-25 16:31:15 +02:00
SkyratBot
d21d28c3af [MIRROR] Block movement now locks turning, migrate old save files to Ctrl (#932)
* Block movement now locks turning, migrate old save files to Ctrl (#53871)

The block movement key now correctly locks turning like it used to.

Old save files are now migrated to Ctrl if they didn't bind it to anything before. This correctly replicates the old behavior.

* Block movement now locks turning, migrate old save files to Ctrl

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-09-23 14:45:44 +02:00
SkyratBot
c15be851f9 [MIRROR] Refactors the keys_held rolling buffer (#903)
* Refactors the keys_held rolling buffer (#53773)

* rolling key rip

* category

* comment

* oops

* Refactors the keys_held rolling buffer

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-09-21 02:23:38 +01:00
SkyratBot
c492889d80 [MIRROR] Makes locking movement a hotkey (#882)
* Makes locking movement a hotkey (#53771)

* kinda done

* Update code/datums/keybinding/mob.dm

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

* Update code/datums/keybinding/mob.dm

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

* Update code/datums/keybinding/mob.dm

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

* Update code/datums/keybinding/mob.dm

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

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

* Makes locking movement a hotkey

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
2020-09-20 00:36:26 +01:00
ShizCalev
263becfc6f Fixes keybind up() not checking for can_use() (#52475) 2020-07-26 13:45:17 -04:00
AnturK
33e3622f27 Add basic sanity to keybindings (#49116)
Not a fan adding another wrapper here but alternative is copypasta 
everyone will forget.
2020-02-02 19:51:39 -08:00
oranges
70bb8fde34 Some changes suggested by lummox 2020-01-05 05:12:06 +00:00
Couls
26a61a489c ports TGMCs click hack for non-hotkey players ports classic keybinds from TGMC (#47670)
About The Pull Request

Ports tgstation/TerraGov-Marine-Corps#2977, overrides click proc to return focus back to chat bar using winsets also ports tgstation/TerraGov-Marine-Corps#1904 which has two sets of defaults for hotkey and classic mode
fixes #47672 fixes #47659

much credit to @Rohesie and the TGMC team for a bunch of these improvements
Why It's Good For The Game

lets the non-hotkey players walk and talk again
Changelog

cl
add: Custom keybinds will now check what style (classic / hotkey) you prefer when resetting if you use classic mode make sure to reset your keybinds to default!
add: multiple keybind support
tweak: non-hotkey mode keeps focus on chat
fix: pressing 4 as cyborg now properly cycles
fix: AI location hotkeys now work again
/cl
2019-11-14 09:22:33 +13:00
Couls
971ef6a416 Custom movement hotkeys and restore macros for T, O and M (#47626)
* Custom movement hotkeys and restore macros for T, O and M

* stray comma

* update movement keys on SSinput initialize

* use cardinals
2019-11-07 18:07:17 -05:00
Couls
65ce56587c fixes modifier hotkeys and adds alternative move intent toggle (#47569)
* fixes modifier hotkeys and adds alternative move intent toggle

* Fixes pulling keybind

* make the wrappers look more like the old popup windows

* it was the freaking save file

* bump up save file version

* reset keybindings to default
2019-11-06 04:20:30 -08:00
spookydonut
2591ce17a6 Travis EOF newline detection v3 (#47539)
* scream

* aaa

* aaa

* new one
2019-11-04 19:16:50 -08:00
Couls
070bb5e69c Port Custom hotkeys from TGMC (#47003)
* custom keybindings

* Update _lists.dm

* Update robot.dm

* modify weights and clean up some vars

* Update say.dm

* Apply suggestions from code review

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>

* some review changes

* formatting

* include focus hack, remove me_wrapper, give default keybinds to new characters, misc fixes

* revert hack and more reviews

* remove another focus hack

this was causing issues with the keydown proc returning early
2019-11-03 01:35:30 -07:00
L
42873d424e Cleanup 2019-10-25 04:26:09 -03:00
spookydonut
4e8ff18b07 Fix Travis grep script to use PCRE to actually match things (#47065)
Several of the greps were missing the `-P` switch which caused them to 
fail to match things. The EOL grep also wasn't working right so I 
replaced it with the one I added to TGMC.
2019-10-19 10:21:05 -07:00
Rob Bailey
85adb0c031 input checking (#46425)
Sanity checks + flood checking.

Changes keys_held to a rolling buffer instead of a list of arbitrary size. This limits held keys to 15, I recommend not holding keys with your toes personally.
2019-09-16 16:37:14 +12:00
kevinz000
c6d710d40e VV refactors 2 - Actually not indefinitely WIP (#45217)
About The Pull Request

The thing other than ruining maps that I was working on
Refactors VV to use a more standard way of doing topic dropdown options rather than a huge if/else chain
Marking datums is now a right click option
Moves a few files around too/few procs
Why It's Good For The Game

Makes it easier to add more VV dropdown options in the future, and moving href list keys to defines make misspelling them harder.
Changelog

cl
add: Oh yeah also added a "return value of proccall" option for VV var editing.
refactor: View Variables has been refactored. It should now be easier to make VV dropdown options.
/cl
2019-08-03 14:43:26 +12:00
oranges
06c3e69cbb keyloop no longer runtimes if the client is mobless 2019-07-24 23:52:44 +00:00
Garen Crownguard
f0251e4faa Fix quickdraw hotkeys working while incapacitated (#44953)
The check for incapacitated is normally done in the click proc since
that way it's checked on all of attack_hand, attackby, etc.. The
keybinding uses attack_hand instead of the click proc because it would
go through as a shift click and examine the item instead of grabbing
it if the click proc was used.
2019-07-04 12:48:10 -07:00
kingofkosmos
81a0518474 * warning-spans added to cases of "You do not..." and "You don't..." 2019-06-25 22:05:55 +03:00
kingofkosmos
6bbb64e2cf * more warnings 2019-06-25 21:46:21 +03:00
Garen Crownguard
dda81b7764 shift E & B keybinding stuff (#41386) 2018-11-11 11:53:02 -05:00
Tad Hardesty
eb6725c61f Improve a few assorted documentation comments 2018-08-22 18:16:04 -07:00
ninjanomnom
d483ff3ef0 Regexes
`([^_\.])SendSignal\((.+?)\)` -> `\1SEND_SIGNAL(src, \2)`
`([\.\w]+?)\.SendSignal\((.+?)\)` -> `SEND_SIGNAL(\1, \2)`
2018-06-13 19:19:23 -04:00
ShizCalev
028231cb81 Updates BYOND links to use HTTPS (#37918)
* Updates BYOND links to use HTTPS

* revert

* if -> If
2018-05-19 19:50:05 -07:00
AnturK
52a99c09d6 Uppercase slot defines 2018-04-27 10:38:32 +02:00
Dax Dupont
dbaeb55d33 Gives admins the D(say) hotkey + fixes buildmode permissions (#37413) 2018-04-25 22:39:07 -04:00
kevinz000
ab993a117a Component Storage, Experimental attack_hand and [ui_]interact() refactors (#36696) 2018-04-12 14:46:14 +03:00
RandomMarine
f83dd8a7dd moves quick equip hotkey up to /mob 2018-03-31 13:17:20 -07:00
Kyle Spier-Swenson
50388534c2 Cyberboss likes this change 2018-02-05 19:17:05 -08:00