Adds a magical locker staff.
It goes through people, capturing anyone being hit by it and putting them in a welded locker
The locker decays in about 5 minutes, to prevent the hallways flooding too much.
Escape time is only a minute.
Explosions are less effective on people inside
Why: It's a bulky wand, and great if you want people to just fuck off. You can either leave them or do something horrible to them.
The sprites are codersprites, except for the locker, please forgive me
* Refactor several log lines to use datum_info_line and atom_loc_line
* Add default return strings from datum_info_line and atom_loc_line
* Add parentheses around atom_loc_line data
* Change more logs to use atom_loc_line
* Add check in atom_loc_line for turfs to avoid calling get_turf on them
* Re-add removed 'at'
* Replace datum_info_line with key_name and atom_loc_line with loc_name
* Refactor logging functions
* Avoid double-logging self-interactions
* Fallback to simple stringification if all else fails in key_name()
* Rewrite muscle spasm logging to use log_message
* Standardize logging of martial arts
* Tweak individual logging panel look
* Fix individual logging panel source
* When I typed || I really meant &&
* Fix Telecomms logging always showing client logs in the panel
* Reverts addition of buggy ownership log to panel
* Remove colon
* Fix missing log_directed_talk tag
* Add warning for missing type in log_direted_talk
* Change warnings to stack_traces
* Add square brackets around fallthrough key_name() case to help parsing
* Allow atom arguments/src in log_*() functions
* Change log_combat call with null argument to log_message
* Change mecha types' log_message() arguments to match atom and mob version
* Add key_name() case for atoms
* Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it
* Fix log_globally logic
* Add logging for hitting objects with items
* Move log_combat() to atoms.dm
* Use utility functions for object stringification in log_combat()
* Use utility functions for object stringification in log_combat()
* Add missing logs for interacting with display cases
* Rewrite log_combat() comment
* Add missing space in log_combat()
* Add logging for hitting grilles barehanded
* Add missing ..()
* adds signal and modifies each call of afterattack to call it's inherited proc
* uses new macro for sendsignal()
* map fuck
* skip precommithooks
* combine and negate 2 ifs
fix: makes dragnet non harmful
tweak: pacifists can now use any disabler or stun setting on any energy gun
code: removed all of the pacifism check code from code/modules/mob/living/living.dm
code: gun objects no longer have a harmful variable, instead, ammo_casing objects now have a harmful variable, which is by default set to TRUE
code: if a pacifist fires a gun, it checks whether or not the round chambered is lethal, instead of whether or not the gun itself is lethal.
* Clean up a bunch of undefined arg runtimes
Ensure subtypes have the appropriate arguments, do a bit of code cleanup
and remove some uneeded emote procs that also caused runtimes
* Fix up all calls to canUseTopic, add the dexterity flag
* Runtime with missing force argument in borg unbuckle mob
* Revert "all this wrapping and it's not even christmas (#33035)"
This reverts commit faaf151580.
* Revert "fuck me for forgetting to graph this one"
This reverts commit 45d7acea2f.
* Revert "defines math"
This reverts commit 2817a1737b.
* Grammar fixes to atom descriptions
- Capitalization and punctuation on most descriptions
- CentCom instead of centcom where appropriate
- Earth instead of earth where appropriate
* Remove spaces before newlines and oneline some strings
* Adds missing </span>'s.
* ".name]" --> "]" and
"to_chat(GLOB.admins," --> "message_admins("
and one [name] --> [src]
* Earlier commit was a mistake, lesson learned
* Hopefully all is ok now.
* Revert "Hopefully all is ok now."
This reverts commit 3c95e41b4c13ce96469861e9a97453adf4b56826.
* Revert "Earlier commit was a mistake, lesson learned"
This reverts commit d611af1e4a76690453a7f9808b6e2c429b679f6c.
* Revert "".name]" --> "]" and"
This reverts commit d538b9efef2d7d8be9122bf5ceaf105055059bc6.
* message_admins fix
This means they're included into the rsc and sent out althogh almost all of these files were already included elsewhere. Also DM will yell if the file couldn't be found for whatever reason like if someone moves or renames it.
I left out some file types for various reasons
dmis used in overlays: I have another pr I'll do later which will fix all of them and I don't want to conflict with myself
text files: they would get included in the rsc, which is completely unnecessary. However they're small, so they might be worth including anyway
* ZAP!
* YOU DID NOT SEE THAT
* YOU DI NOT SEE THAT 2
* object orientated pr
* gdi
* protection
* object orientated pr v2
* REEEE
* blacklists
* Update magicarp.dm
* Adds regenerate_organs proc to carbon and adds it to relevant regeneration code
I simply took the bit from the admin heal and made it into a proc and
added it to the necessary regeneration-related bits of code.
* Adds regenerate organs back to fully heal
For some reason this didn't get included in the previous commit.
* moves regenerate_organs to organ_internal
As suggested. It fits better here, anyways.
* This doesn't actually matter, because you're dead forever once it happens...
* is this entire pr chaff for something else
* you'll do it? nah, fuck that I'll do it
This is mostly a pre-setup for my greater-bag-of-holding stuff.
You can't use bluespace crystals/jaunters/hand teleporters to access bluespace-proofed areas. at the moment, this only applies to shuttles and centcomm.
Teleport beacons placed in bluespace proofed rooms can't be teleported to, except via teleporter station hub.
A little concerned because now 'hijack' antags cant use teleprods to fling everyone out of the shuttle while in transit. q_q could easily just make the shuttle non-bluespace proof though.
Note for mappers: This means you can create ruins that can't be teleported into using bspace crystals by setting the area "noteleport" to 1. This can be used to force players to travel through the ruin the way they're intended to. Or to prevent them from gaining access to areas they shouldnt normally be able to. (ie. the wishgranter ruin)
- can_be_revived(), used so we don't revive a mob who would immediately die again (lack of brain organ for carbons).
- fully_heal(), called by revive when we want to completely heal a mob before trying to ressuscitate it.
I gave some arguments to revive() so the proc can be used by more than just the admin healing code (ai revived by the AI fixer console, drone revived by another drone clicking it, strange reagent ressuscitating you, borg revived by restart circuitboard, changeling using his revive ability, etc)
This fixes borg revival not updating its vision correctly and not updating the diagnostic HUD. Same fix for changeling revival.
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
Also smoke reaction now uses the TOUCH method instead of VAPOR, to differentiate smoke and foam. Mob without internals or gas masks also ingests reagents in the smoke.
Moved nanofrost smoke code to effects/effect_system/effects_smoke.dm
The spell "Charge" is now selectable for a cost of 2 in the spellbook
The spellbook's category system has been reworked to help deal with the huge scroll bars it previously had and help identify to wizards what needs spells and items serve.
The new categories are:
Offensive:
Fireball
Disintegrate
Blind
Mutate
Flesh to Stone
Lightning Bolt
Curse of the Barnyard
Staff of Change
Staff of Chaos
Defensive:
Magic Missile
Disable Tech
Repulse
Stop Time
Smoke
Forcewall
Bind Soul
Staff of Healing
Scrying Orb
Wand Assortment
Armor Set
Mobility:
Mind Transfer
Blink
Teleport
Ethereal Jaunt
Knock
Staff of Door Creation
Assistance:
Instant Summons
Charge
Staff of Animation
Soul Stone Shards + Artificer
Necromantic Stone
Apprentice Contract
Bottle of Blood
Fixes an unreported bug where targeting your mouth with a staff of healing allowed self healing through suicide.
Adds an easter egg to clever wizards who try to charge the spellbook to get more charges.
- fixed the fraction argument in reaction(...., INGESTED, fraction) so the proper amounts of each reagent react, not all of it.
- slight optimization of datum/reagents/reaction()
- small optimization /datum/reagent/proc/reaction_mob
- the smoke's reagents no longer do direct transfer upon crossed()/move() but uses "reagents.reaction( mob, TOUCH)" only.
- fixes no ingesting smoke if it's in the dark.
- removed block gas smoke effect flag from clown mask and other non "actual" gas mask.
- refactor how protection against touched chems being absorbed is done. get_permeability_protection() to get that protection. No more
simple RNG get touched or not, now the amount that touches you depends on your protection and the volume in question.
- changes acid_act to take volume into account.
- chem_smoke now uses process() just like foam, we remove the reaction from crossed() and Move(), it's only done in process() now.
- optimization of effect/smoke, OOP! And now all smoke effects use objprocessing instead of shitty sleep/spawn
- removed mob var/coughedtime.
- add a volume check to item/acid_act(), there's a threshold to be able to melt and then a probability to melt (acidpwr&volume).
- greatly lowered the amount of reagent in the smoke from dead blobspore (so the volume isn't enough for melting)
- human/acid_act(): damage to limbs depends on acidpwr&volume.
- fixes metalfoam not working.
- smoke powder: only one start() call.
- Amound of smoke objects depends on amount of smoke recipe created.
- Adds an argument to add_reagent() to block automatic call of handle_reaction()
- When using reagents/proc/trans_to(), reactions are now only handled after every reagent is transfered and not before.
- Amount of smoke objects depends on amount of smoke reagent created.
- radius of foam reaction depends on amount of foam reagent created.
- The amount of other reagents inside the smoke/foam decides the life expectancy of the effect.
- The amount of reagents in each small smoke cloud/foam cell depends on the amount of other reagents in the initial reaction but also
how much smoke/foam was created (more smoke means dilution of the reagents).
- smoke/foam's reagent reaction on mob decreases the life expectancy of the effect (to avoid reagent duplication)
- The amount of reagent reacting with atoms is less if the life expectancy is high.(to avoid reagent duplication)
- The amount of movement from the smoke now depends on the number of smoke clouds created.
- removing some useless code in chem_grenade/prime().
- When calling human/acid_act(), item acid melting chance lowers after each each successful melt in the list, some of the acid is
"used" to melt that item so the next items have a lower chance to melt (to make melting every clothing harder).
- remove the banned reagent list from sprays, not needed anymore now that acid is nerfed.
- chem_grenade reaction, if there's no reagent left after reaction (smoke/foam/etc, reagents cleared) you don't get the steam effect
and immediate reaction with all atoms around the grenade explosion. (Fixes foam cleaner grenade deleting bloodstains around it as soon
as the grenade explodes, even if the foam hasn't reached the tile yet).
- melted storage items now drop their content instead of deleting everything.