* Tackling now disables throwmode when you hit something + a few small buffs/changes (#53050)
* hugboxes tackling
* gorilla gloves a bit better
* update comments
* health update
* update
* less annoying doc
* Tackling now disables throwmode when you hit something + a few small buffs/changes
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Overlay lighting component (#52413)
Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.
It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:
This is a BYOND limitation, very well worth it IMO.
🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑
* Overlay lighting component
Co-authored-by: Rohesie <rohesie@gmail.com>
* Food refactor part 1: Bread destruction and processable element (#53047)
* Food refactor part 1: Bread destruction and processable element
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Monkeys are now disarmed like humans (#53036)
Previously, monkey disarming was the old system of RNG stun/lose item. This PR makes disarming monkeys the same as disarming humans.
* Monkeys are now disarmed like humans
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* 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
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Opacity refactor (#52881)
Moves all opacity var manipulation to a proc which sends a signal.
light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
Some opacity-related sight procs optimized as a result of this.
Some variables moved to the object's definition.
A define or two added into the mix for clarity.
Some code cleaning, like turning booleans into their defines.
One file renamed for clarity.
Changelog
cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl
* Opacity refactor
Co-authored-by: Rohesie <rohesie@gmail.com>
* cleanup the corpse file, cleanup stationstuck component, adds stationstuck to the reanimated skeleton (and zombie, why not) (#52940)
all living spawners in corpse.dm are now in ghost_role_spawners. I hate having to search two different files to HOPEFULLY find which ghost role I need to edit.
Added a disclaimer about giving guidance or at least stationstuck component to stuff so this doesn't happen again
Cleaned up stationstuck. Man, I know I made this, but damn I did kind of a shit job
* cleanup the corpse file, cleanup stationstuck component, adds stationstuck to the reanimated skeleton (and zombie, why not)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fix runtime with CANT_WOUND weapons that use pellet_cloud (#53001)
In /datum/component/pellet_cloud/proc/pellet_hit if the projectile's wound_bonus is CANT_WOUND, then wound_info_by_part[hit_part] never gets a value set.
This causes an issue in /datum/component/pellet_cloud/proc/finalize() where it assumes that wound_info_by_part[hit_part] has always been set to a list(x,y,z).
I added a quick if check to skip this where there's no wound info for a part.
Weapon this behaviour manifested on: DRAGnet on net mode. Due to the runtime, I didn't notice it dealing any stamina damage. This should fix that scenario as well as any other CANT_WOUND projectiles and prevent them from runtiming early.
* Fix runtime with CANT_WOUND weapons that use pellet_cloud
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* you can no longer stuff a bajillion live mice into your chef's hat (#52640)
* fuck
* Update code/datums/components/storage/concrete/pockets.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* you can no longer stuff a bajillion live mice into your chef's hat
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* Fixes staminacrit not paralyzing (#52906)
Additionally removes the now-superfluous stam_paralyzed variable. We can already track this with the incapacitated effect from the stamina source.
* Fixes staminacrit not paralyzing
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
* Various Paper bug fixes (#52470)
* Ugh too tired fix latter
* Ok think its fixed, still need to make the stamp working
* Major fixes done, but still the ui dosn't pop up once you examine the door
* Ok you can read doors now, that was annoying.
Ok we done
* Update paper.dm
oh fix
* I have DONE it! Alright
* Miner fixes on order
* Update tgui.bundle.js
* Update code/modules/paperwork/paper.dm
Sure
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/paperwork/paper.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Alright some fixes
* Update tgstation.dme
* Revert "Update tgstation.dme"
This reverts commit 3eaa48d9fcfa2645663420165c39643c3ae5d939.
* Update tgui.bundle.js
* Update code/datums/components/honkspam.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/datums/components/honkspam.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/paperwork/paper.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/paperwork/paper.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Bahhh...me..so..tired
* pointless uistate gooone
* Update tgui.bundle.js
Co-authored-by: Rohesie <rohesie@gmail.com>
* Various Paper bug fixes
Co-authored-by: WarlockD <warlockd@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* you can now make extendohands with a right and left arm (#52826)
* you can now make extendohands with a right and left arm
Co-authored-by: Fikou <piotrbryla@onet.pl>
* 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>
* RPG Loot's summoning affix can no longer summon mecha pilots and elites (#52781)
* jesus christ
* webbit
* RPG Loot's summoning affix can no longer summon mecha pilots and elites
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* 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.
* Cleanup up all instances of using var/ definitions in proc parameters.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Confusion will no longer continue to confuse after being cured (#52286)
* Confusion will no longer continue to confuse after being cured
* Grammar comment fix
* Move to status effect
* Remove test per request
* Make confusion a status effect, confusion curing now completely neuters the confusion
* set_confusion changes, get_confusion
* Fix confusion going down twice per tick
* Change strength = to proc
* Move procs to status_procs
* Confusion will no longer continue to confuse after being cured
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Riders will now turn with their vehicle (#52612)
* Riders will now turn with their vehicle
* Remove new signal, refactor to accept a direction
* Update code/datums/components/riding.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* Riders will now turn with their vehicle
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
* Adds a coder override emote so manual custom emotes work properly (#52602)
* Adds a coder override emote to skip dumb shit with me
* I know this sucks, I can't comprehend how to do this cleanly without a full rewrite
* cleaner now
* Adds a coder override emote so manual custom emotes work properly
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* mood multiplier no longer applies per moodlet (#52632)
* mood multipliers are applied once instead of per moodlet
Co-authored-by: Theos <theubernyan@gmail.com>
* Fixers for telekinesis and the defibrillator interactions (#52571)
* tk and the defib
* fixed range check
* extra check that is not needed
* only show ear damage on threshold pass
* wrong branch am bad
* is living check
* Fixers for telekinesis and the defibrillator interactions
Co-authored-by: NightRed <nightred@gmail.com>
* Dismemberment wound tweaks, zombies are easy to wound/dismember, tweaks to head vulnerability (#52534)
* adds wound armor to helmets + such, nerfs standard head resist
* dismember + wound species balance, retitle traits
* Dismemberment wound tweaks, zombies are easy to wound/dismember, tweaks to head vulnerability
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Don't initialize the atom_colours list on atoms until it's actually needed
* Moved bloody_hands var to mob/living/carbon/human instead
* Added COMSIG_COMPONENT_CLEAN_RADIATION signal to reduce moms spaghetti
The shower and suit storage unit now calls this signal instead of either doing it manually or doing it via the washed proc
* Cleaned up carbon washing, renamed washed to wash
* The wash proc now doesn't take the washer as first arg because that wasn't used anywhere
* The wash strength is no longer optional
* Carbons now overrides the wash proc instead of using the signal
* Properly check for obscuredness before washing any equipped items
* Properly wash all items and bloody hands etc
* Added clean_lips proc for humans for cleaning any lipstick
* Cleaned up washing. Washy stuff now calls wash instead of calling the clean signal directly
* Renamed is_cleanable to ismopable, gives this category a more fitting purpose. Many things beyond floor decals are cleanable. It is now also determined using the atom layer instead to make it more generic.
* Properly utilize the is_cleanable define
* Added wash override for turfs where they also wash any mopables on the same tile
* Space cleaner and cleaning element etc now simply washes the mob instead of doing its own manual cleaning on ~some~ equipped items
* Non-component washables now simply override wash instead of registering for the clean signal
* Fixed some left over clean signal registers not returning true
* Added clean_strength var to space cleaner
* Moved human wash proc next to the other washing procs
* Also wash glasses and mask if not obscured when washing face
* Fixed attempting to "scoop up" cleanable decals using a rag
* Fixed plasmaman spacehelm icon not updating when washed
Also removed a duplicated worn_overlays proc
* Fixed head icon not updating when washing lipstick
* Moved radioactive clean signal register to where it should be
* Added atom radiate VV verb for debugging
* Redesigned the CLEAN constants into a more sensible flags setup
This makes it more dynamic, cleaning apparatuses can clean more specific than just a cleaning strength.
* CLEAN_TYPE_* flags indicate a specific cleanable, such as blood, fingerprints or disease
* CLEAN_* consts consist of a combination of cleaning types to make cleaning apparatuses have a consistent behaviour on what they clean
* Fixed broken rad removal logic in showers
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Removed unneccesary bool from sink code
* Fixed wrongly named variable in turf wash
* Renamed bloody_hands to blood_in_hands
Co-authored-by: Rohesie <rohesie@gmail.com>
* Simple skills framework.
* Map changes.
* Adds skillchips to vendor
* Adds skill stations to the map.
* Circuitboards
* Fix typo
* Some minimal instability
* Fixes,tweaks etc
* Suggest better names or we'll end up with these.
* sharpness thing
* tgui build
* Makes wine from booze synthetizer show to wine tasters.
* Makes wine from dispenser have taste for wine tasters.
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Swaps to carbon var.
* wordy helper proc
* While i'm at it, other relaymoves
Co-authored-by: Rohesie <rohesie@gmail.com>
* pierce the heavens
* starts doing projs
* continue pierce
* before armor
* before sharpness redefine
* rename sharp defines, before further implementation
* finishing undoing atk_type back to sharpness
* neatens up sharpness defines, FALSE -> SHARP_NONE
* more piercing, removes brute damage bleed, bubblegum no longer wound
* starts letting embeds get in on the fun
* half with embed
* work on dismembering
* continued embed work
* more moving bandaging to limbs
* more dismemberment work
* removing embed pierce stuff
* tweaking bullets
* more docs and work on dismemberment
* spans, piercing, guns
* dismemberment and scar fixes
* bee changes
* bullets embedding
* more bullet and dismember work
* dismemberment, surgery, piercing, formaldehyde,
* pleases travis
* pierce smite
* nicer on blood
* Auto stash before rebase of "tgstation/master"
* more neatening
* wounds only consider up to 35 damage, wounds on l6 and 762
* updates hulk
* balance
* defines
* lower slug to 50 brute to accommodate wounds
* adds differentiation for having flesh/bones/both in mobs
* moves scar descs to json, renames organic_state
* excises removed healing skill
* fixes logs, inconsistencies, some balance changes
* untab
* slight compress
* a
* kills pointed global list
* dmdoc
* halfway through roh
* finishes roh review
* okay NOW i finished roh's reviews
* roh roh roh your boat
* gently down the stream
* global lists
* list ops, fix scanner for bone gel improvised fix
* travis moment
* sounds added and moved
* pellet clouds can join the fun fully, slight gun balancing for wounds
* doc moment
* unconflicts myself
* update hulk
* Update code/_onclick/item_attack.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* crying ascii face
* final rohview
* oops
* final final
Co-authored-by: Rohesie <rohesie@gmail.com>
* Take 1, initial mediocity
* Stonks
* I'm working on it don't stale me
* HOOOOOOO adjusts the photocopier, extends component functionality to the medical kiosk, etc etc/
* Fixes that one bug with printers.
* Removes an unused var.
* Makes defines
* I am a champion
* Moves econ defines over... econ defines.
* Forgot the comment.
* How about now?
* Accidently excluded payments from the dme.
* Slight text tweaks, also checkmark.
* updates economy defines.
* Apply suggestions from code review
Review Commits pre-cleanup
Co-authored-by: Rohesie <rohesie@gmail.com>
* Post-Fixes from review.
Co-authored-by: Rohesie <rohesie@gmail.com>