* Standardizes attack chain signal returns and fixes a tk bug (#54475)
The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.
In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.
Additionally, fixed a tk bug reported by @ Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack
Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.
Also cleaned some code here and there.
* Standardizes attack chain signal returns and fixes a tk bug
Co-authored-by: Rohesie <rohesie@gmail.com>
* Anonymizes chapel intercom, so chaplain doesn't know who's talking. (#54476)
Adds support for radio's that anonimize the user, and adds one to every chapel.
It adds a new layer of immersion, and the option to anonizmie the speaker adds new options for mappers.
* Anonymizes chapel intercom, so chaplain doesn't know who's talking.
Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
* Intercoms now have appropriate attack_tk_grab response (#52835)
Due to issues with item interaction code, this PR means the intercom is now viewable with telekinesis but is not interactable unless adjacent.
* Intercoms can now be interacted with via the telekinesis mutation
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
About The Pull Request
/area/proc/usage() attempts to give list-like access to a bunch of vars. Why not make it a list instead and avoid all the proc calls? Might be room for followup here, to do something to powered(), use_power() etc.
Some legacy machinery was ignoring the default machinery use_power pulling from the machine's power channel by default
Total power usage was unused, APCs ignored it in favor of calculating it themselves :)
I also renamed the defines because they were in the danger zone of being very common words.
Changelog
cl Naksu
code: optimized area power usage calculations.
/cl
* Intercom examine tells you about :i
If you're close enough to them
* Intercom exmaine message different depending on proximity
* Intercom examine isn't dynamic
* Nanotrasen fires the Wave Motion Gun at the Clock Cult
* Fixes a random changelog appearing from the reebe void.
* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.
* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.
* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron
* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)
this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.
also applies materials to everything, with fixes, which can close#46299
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
* 1/4 done? maybe?
* more
* stuff
* incremental stuff
* stuff
* stuff & things
* mostly done but not yet
* stuffing
* stuffing 2: electric boogaloo
* Git Commit and the Kingdom of the Crystal Skull
* make it actually compile
* found more stuff
* fixes
* fix AI laws appearing out of order
* fix windows
* should be the remaining stuff
* this time for real
* i guess it should compile too
* fix sechuds
* Adds programmable nanites to robotics
* Oh yeah i might want to actually PR the files
* nanite injectors, nanite printer, nanite analyzer
* We're back
* remove some reagent stuff
* more removal
* those too
* cool icons!
* might pass travis now
* lotsa code
* tgui fixes/misc fixes
* WE'RE FUNCTIONAL BOYS
* some ui stuff
* Misc fixes, cloud update, access nanites
* activation check
* stuff
* preparing for new chamber sprite
* Physical backups, sensor nanite programs
* techweb sensor nanites
* fix
* include
* fix again
* revert
* blinding nanites
* minor change
* minor tweaks
* makes minor shocks interfere with nanites
* fix
* split trigger file into the others, for consistency
* cleanup, added mindshield nanites to techwebs
* include n all
* how'd that even happen
* Fixed HUD, readded missing remote icon, added nanite scanner, health analyzers can now detect nanites, added stealth program
* cost tweaks
* better term
* new icon! by MrDoomBringer
* icons/tweaks
* tgui build
* boards
* fix
* fixes implants not updating mindshield status
* move implant hud to living
* new remote sprite
* scanner sprite
* biotype checks
* some nerfs
* new open chamber sprite
* Fixes mindshield implants not updating the HUD, fixes uninstalling always removing the first program, adds 25% and 75% health sensors
* correction
* nerfs antistun nanites
* fixes scanners and minor tweaks
* fixes revs with mindshield
* oh yeah haha
* Fixes wonky techweb
* Moves pyro program to weapon node
* Adds defib program and some investigate logging
* mistype
* fix
* fix2
* save your files before committing
* emps can desync from cloud
* pretty outdated
* Cloud backups are now tied to the cloud consoles; you can no longer build a new console to access existing backups.
* UI fix
* more fix
* okay fix for real
* tested and working
* Extra Settings rework, sensor nanites vastly better
* non-unique glitches
* Public chamber, extra settings rework, new sensors, speech program
* Mute and mind control nanites
* mind control into hazard
* better description
* fixes
* fixes relay nanites
* fixes TK access
* mind control costs less
* UI update
* removed pointless code bit
* tgui build
* compiles
* dammit
* paralysis keeps victim upright
* Adds sounds to consoles
* some feedback for some subtle effects
* new chem lore
* Viral nanite customization
* fix
* tgui build
* Added mitosis nanites
* removes glitched nanites from techwebs
* Added flesh eating nanites, poison nanites, hallucination nanites
* ,
* #traviscoding
* Adds memory leak, renames nanite roam node to nanite smart
* Voice sensor + some techweb desc tweaks
* hallucination and Hear() fix
* changes signal registering to the new method
* 75% done, i think
* should be all
* more fix
* more changes
* okay should be fine now
* ninja
* inheritance
* i don't care about originality!
* line endings
* line endings 2
* maybe
* fixes program installation
* new review
* line endings?
* line endings??
* line endings???
* wait do i even use this
* fixes public nanite chamber cloud id
* maint overlay for chambers
* args doesn't work well here
* antiabuse checks
* compile tho
* fixes locked remotes
* disk renaming
* skull echo nanites
* self scan program
* Condenses a lot of sensors into a few generic but customizable versions
* fixes machinery runtimes. Hacky, but a proper fix would likely require a refactor of machinery typing.
* forgot to save
* empty
* metastation nanite lab
* Removes duplicate APC
* fix for nanite chamber
* Raise max programs
* UI Tweaks, aggr. replication rebalance, minor fixes
* let's not do that again
* Fixes nanites meta merge conflict
* Merge conflict v2
* fuck this HDD is slow
* What the fuck did you just fucking say about me, you little leaf? I'll have you know I graduated top of my class in the Lawyer School, and I've been involved in numerous secret DMCA raids. I am trained in law violations warfare and you are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on BYOND, mark my fucking words. You think you can get away with changing the code? Think again, fucker. As we speak I am contacting my secret network of attorneys in the Fox and your IP is being traced right now so you better prepare for an outstanding warrant, maggot. The storm that wipes out the pathetic little thing you call your leaked code. You're fucking done, kid. I can file for an injunction anywhere, anytime, and I can take legal actions in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the Florida Statute and I will use it to its full extent to wipe your miserable ass off the face of Canada, you little shit. If only you could have known what unholy retribution your little "clever" action was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will send you to spend time in a Florida State Penitentiary if you ever decide to travel from Canada to the U.S. You're fucking done, kiddo.
* Adds virus symptoms that interact with nanites
* Fixes spreading nanites being more infective the more protection the victims have
* Review plus public chamber tweak
* . = ..()
* ball
* cloud
* . = ..()
* always press save all before committing
* missed a couple
* small changes
* Adds a use_tool helper and changes some tools to use it
* Ports most tool operations to use_tool
* Converts more tool operations to use_tool and tool_act
* Changes some things to default_unfasten_wrench
* Improves tool_behavior support in mech construction
* Code review memes
* Fixes all instant use_tool calls failing
* Code improvements
* merge fixes
* Refactor radio message broadcasting in a major way
Broacast_Message and everywhere that uses it, including radio talk_into
and the telecomms broadcaster and allinone. Other telecomms machinery
has had dead code excised.
Functionality should be roughly the same as before, but:
- CentCom headsets are only magic when using the CentCom frequency
- Syndicate frequency speech on the station no longer double-talks
- Talking directly into an intercom or radio which also has its
microphone on no longer double-talks.
* Split signal/vocal into subspace and subspace/vocal
* Move the message server and its computer to telecomms folder
* Slightly tidy the message server and computer
* Move subspace receiver logic to a proc on signal/subspace
* Repath the message server under machinery/telecomms
* Largely get PDA messages onto subspace proper
* Actually require the server for PDA messages
* Improve signal/subspace/New() and copy()
* Improve input handling on the message server
* Fix initialization and Z checks of allinones
* Add a constructor for virtualspeaker
* Fix radiation storms initializing a bad virtualspeaker
* Fix runtimes with machines talking into radios
* Finish making the message server a real telecomms machine
* Make CTF radios independent also
* Fix window IDs of message server PDA photos
* Remove extraneous parameters of receive_signal
* Delete unused signal datum procs
* Remove signal/var/encryption in favor of data
* Add and use datum/signal/New
* Clean up PDA and pAI integrated signalers
* Remove unused send_hear proc
* Clean up vars on obj/item/radio, change receive_range to can_receive
* Remove suffix var from radios
* Fix cell timer radios
* Change transmission_method to use defines rather than magic numbers
* Use MIN and MAX_FREE_FREQ defines when bounds-checking radios
* Remove violently broken "Debug Signals" verb
The relevant Destroy() is never called, making the static pointers list
take lots of memory and be large enough, even at roundstart, to crash
the chat when invoked (25k+ entries).
* Remove unnecessary checks for SSradio not existing
* Move department frequencies from GLOB to defines
* Replace all hardcoded radio frequencies with named defines
* Change the radio filters to be defines
* Use a define for the default signaler code
* Starting on the rework
* Reworks the Ark
* Work on Reebe
* More Ark stuff
* this too
* Removes ark silliness, remaps Reebe a tad
* Spawning mechanics
* Work on gamemode code
* Finishes up ark stuff
* Removes Judgement, and lots of other changes
* New Ark activation sounds, Ratvar text
* Spawn protection!
* Adds the abscondence bijou
* Bijou stuff
* well, this is it
* somewhat absentminded coder
* Remaps the Reebe z
* replica fabricators now work!
* Guide paper!
* Now they're clockwork floors
* Infirmary, tweaks, numbers
* A new thing!
* this is ok for now
* I was gonna whine but it's actually necessary
* Adds damage scaling to ocular wardens
* I missed a thing
* you can go back too
* New clockwork armor sprites
* Weapons, scripture, oh my!
* no! shoo!
* hey, I forgot about you!
* this looks much better, I'll give you that
* no teleporting into the void!
* we have no need of you anymore
* Conflicteroos
* AUTOMATIC SPINNING CHAIRS
* how many times do we have to teach you this LESSON OLD MAN
* flagged!
* last time, meesa promise
* Conflicts 1
* wood filling
* Kindle is a projectile, and other stuff
* Chameleon jumpsuit, some small changes
* 150 hours of testing
* Curious is the trapmaker's art
* Conflicts 1
* naaah
* Fixes an ark sound
* Removes the prolonging prism
* Adds a delay to warping in
* First steps towards changing the power system
* Removes power from sigils, moves to global
* Conflicts 1
* zoom zoom
* Adds the stargazer, re-adds conversion
* conflicts? more like CLOCK-flicts
* get it? clockflicts?
* Daemon tuning
* Scraps components, 1/?
* A grace period, among other things
* You can't get to reebe from space no stop bad
* Adds some cogscarab shells to Reebe - yes, I get the sounds
* FUCK
* Chairs are very important.
* Clock golems, sound improvement, intercoms
* Sounds, floor fixes, conflicts
* Fixes the conflicts
* Prevents intercom use during non-clock rounds
* Wiki, HUD timer, tweaks, golems
* Components, removes unused structures, rep. fab power
* go-time
* Ending the round is not a good idea
* whoops, forgot about you
* ssh is ok
* this works too
* Add the system for managed global variables
* Travis ban old globals
* So you CAN inline proccall, that's neat
* Fix that
* master.dm
* Remove the hack procs
* Move InitGlobals to the proper spot
* configuration.dm
* Fix the missing pre-slash
* clockcult.dm
* This is probably for the best
* Doy
* Fix shit
* Rest of the DEFINES tree
* Fix
* Use global. for access
* Update find_references_in_globals
Always hated that proc
Whoever made it must've bee a r e a l idiot...
* __HELPERS tree
* Move global initialization to master.
Fix the declaration
* database.dm
* Dat newline
* I said DECLARATIVE order!
* Here's something you can chew on @Iamgoofball
* game_modes.dm
* Fix this
* genetics.dm
* flavor_misc.dm
* More stuff
* Do it mso's way. Keep the controllers as global
* Make master actually see it
* Fix
* Finish _globalvars/lists
* Finish the rest of the _globalvars tree
* This is weird
* Migrate the controllers
* SLOTH -> GLOB
* Lighting globals
* round_start_time -> ticker
* PAI card list -> pai SS
* record_id_num -> static
* Diseases list -> SSdisease
* More disease globals to the SS
* More disease stuff
* Emote list
* Better and better
* Bluh
* So much stuff
* Ahh
* Wires
* dview
* station_areas
* Teleportlocs
* blood_splatter_icons
* Stuff and such
* More stuff
* RAD IO
* More stuff and such
* Blob shit
* Changeling stuff
* Add "Balance" to changelogs
* Balance for changelog compiler + Auto Tagging
* Update the PR template
* hivemind_bank
* Bip
* sacrificed
* Good shit
* Better define
* More cult shit
* Devil shit
* Gang shit
* > borers
Fix shit
* Rename the define
* Nuke
* Objectives
* Sandbox
* Multiverse sword
* Announce systems
* Stuff and such
* TC con
* Airlock
* doppllllerrrrrr
* holopads
* Shut up byond you inconsistent fuck
* Sneaky fuck
* Burp
* Bip
* Fixnshit
* Port without regard
* askdlfjs;
* asdfjasoidojfi
* Protected globals and more
* SO MANY
* ajsimkvahsaoisd
* akfdsiaopwimfeoiwafaw
* gsdfigjosidjfgiosdg
* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!
* facerolll
* ASDFASDFASDF
* Removes the unused parts of dmm_suite
* WIP
* Fix quote
* asdfjauwfnkjs
* afwlunhskjfda
* asfjlaiwuefhaf
* SO CLOSE
* wwwweeeeeewwwww
* agdgmoewranwg
* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?
* Fix syntax errors
* 100 errors
* Another 100
* So many...
* Ugh
* More shit
* kilme
* Stuuuuuufffff
* ajrgmrlshio;djfa;sdkl
* jkbhkhjbmjvjmh
* soi soi soi
* butt
* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING
* lllllllllllllllllllllllllllllllllllllllllll
* afsdijfiawhnflnjhnwsdfs
* yugykihlugk,kj
* time to go
* STUFFF!!!
* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!
* ngoaijdjlfkamsdlkf
* Break time
* aufjsdklfalsjfi
* CONTROL KAY AND PRAY
* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Goteem
* Fix testing mode
* This does not belong in this PR
* Convert it to a controller
* Eh, fuck this option
* Revert controllerization Ill do it some other time
* Fix
* Working controllerization
* FOR THE LOVE OF CHRIST PROTECT THE LOGS
* Protect admins and deadmins
* Use the inbuilt proc
- We no longer leave a blood trail if blood_volume is below a certain level which depends on the brute damage received. This way dragging a wounded player does have a bad effect.
- We no longer give humans a second reagents var containing blood, and we don't put exotic blood in the mob's reagents. Now we don't store any blood substance inside the mob, we only have a blood_volume var. When we draw blood with syringe we create the reagent that match the type (blood reagent, or an exotic blood reagent)
- can't draw blood from mob if it's low on blood, so we can't empty a mob of its blood entirely.
- Removed the blood type preference appearing in character setting.
- blood pack automatically show blood type, unless manually labeled.
- removed bloody_hands_mob human var and same name glove var.
- Some animals now have blood (pets, goat, cows)
- hitting and dragging mobs with actual blood in their veins leaves blood on you and a trail on the floor.
- probably other stuff that I'll mention in the PR.