* Add better weakref support to qdel (#56206)
* Add better weakref support to qdel
* change request
* Add better weakref support to qdel
Co-authored-by: spookydonut <github@spooksoftware.com>
* Linter, shut thee up. (#56193)
About The Pull Request
Renames a directory such that it does not have a .dm prefix as that is linted against and made it onto master.
Why It's Good For The Game
The linter can stop yelling at everyone over a filepath.
* Linter, shut thee up.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Adds custom icon mapping helper. (#56183)
Allows embedding icon edits in your maps by fetching them from external host.
This is intended for use with live-loaded away/event maps not standard ones.
Also updates rustg defines to expose the additional options arguments. (https://github.com/tgstation/rust-g/pull/59)
* Adds custom icon mapping helper.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Adds database tracking to maintenance pills (#56179)
I originally added maintenance pills, and while already perfect, I felt like polishing them a bit. I didn't do much, just:
- Maintenance pills now track a players score. Gotta eat em all to get that leaderboard highscore!
- More names and decriptions for maintenance pills, most of them suggestions from the old PR
- Renamed floorpill to pill/maintenance in code because that's what they are, no idea why I didn't originally do it
I've also polished the sprite a little bit, because it always looked a bit _too_ shady

(Below is old sprite, above is new sprite)
* Adds database tracking to maintenance pills
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Increases the clarity of firealarms (#56188)
## About The Pull Request
Makes firelocks closed by atmos issues open when those issues are resolved
Adds a finished proc to atmos_sensitive
Adds a new overlay for fire alarms that are currently triggered due to atmos issues
Makes the detecting var work properly instead of shutting off behavior until the next activity (This avenue needs more work put into it, but that's out of scope for this pr)
## Why It's Good For The Game
I've been getting "complaints" from players about firelocks and cold, and while I think part of it is stuff that will smooth out over time, they do have a point. So let's make fixing firelocks less of a shot in the dark, and more of a minigame.
* Increases the clarity of firealarms
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Infinite Gun Culling: Gun Kit Edition (#56133)
Every prototype firearm in the game now utilizes crafting to construct it, usually sacrificing a standard version of that firearm in order to produce the new one. The guns are made using gun part kits you print from the security protolathe (or buy, in the case of hellfire lasers).
* Infinite Gun Culling: Gun Kit Edition
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Stack overflow detection for the Master Controller. (#56008)
* Stack overflow detection for the Master Controller.
Using a weakref, we can detect if the mc's stack was ended by byond due to a stack overflow, and restart it without waiting the entire defcon countdown in the failsafe controller.
I built a system around this concept under /datum/stack_end_detector and deployed it to the MC's main loop with checks in the failsafe controller.
* Stack overflow detection for the Master Controller.
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* Makes the manifest always have a certain department order (#55917)
Makes the manifest always have a certain order to the departments in it.
* Makes the manifest always have a certain department order
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
* [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join (#55956)
Currently, a victory for revoutionaries leads to the round abruptly ending on dynamic. This has been replaced by all revolutionaries being deconverted, and no new security or command positions being available.
Also attempts to unionize (pun intended) copy and paste code in the round start and late join revolutionary rulesets into being handled under the revolutionary team instead.
* [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
* Regular CTF no longer has wounding (#56093)
🆑 coiax
tweak: Regular Capture-The-Flag players can no longer be wounded.
Simulated participants in the Medieval Shuttle can still be violently
murdered with wounds however.
/🆑
CTF is very fast paced, and if you've taken damage without your shield,
you are nearly dead most of the time. However, if you do survive, you're
supposed to slowly heal, but wounds are untreatable on the battlefield.
People still being able to be bloodily stabbed in the Medieval Shuttle
is definitely a feature.
- Aliens (xenomorphs) are still immune to wounds, but that immunity is
now done with a trait, rather than a typecheck.
* Regular CTF no longer has wounding
Co-authored-by: coiax <jack@billbuddy.co.uk>
* Rework job food/alchohol benefits into livers (#55721)
By moving the "special behaviour" of something like security officers
eating donuts, or engineers losing radiation by drinking Screwdrivers,
into traits on the liver, this makes the "origin" of that behaviour more
clearly defined, rather than something that's attached to the mind of
the person. (For example, now if a wizard mindswaps into a Security
Officer, they too can now digest donuts good.)
Having this behaviour be partially visible to the more medically
inclined members of the station (like doctors, and the chaplain for
"entrails reading mystic" themes), means that a dismembered liver tells
a story to those who know how to read it.
Some jobs have more "benefits" than others, for example the only thing
that the liver of a Quartermaster gives them is a sense of inadequacy
when consuming royal carpet.
Clowns having livers that honk make them easier to identify, and plays
into the retconned "bike horns are clown livers lore"? Also, why not cut
out a clown's liver then honk them with it? You monster.
* Rework job food/alchohol benefits into livers
Co-authored-by: coiax <jack@billbuddy.co.uk>
* Removes the ANIMATION_PARALLEL flag from floating and fixes another issue with the refactor. (#55930)
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Removes the ANIMATION_PARALLEL flag from floating and fixes another issue with the refactor.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Fixes 2 really annoying cytology virus bugs. (#56062)
This PR fixes the generate_sample proc so it properly uses virus_chance to determine when to generate a virus. Now most samples will be virus free as intended.
It also fixes the bug where virus penalty and spaceacillin consumption would be multiplied by the number of cell lines, rather than the number of viruses, as intended.
* Fixes 2 really annoying cytology virus bugs.
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
* [READY] Nukes archeology component and icon_plating and environment_type in favor of base_icon_state. Dig behaviour code improvement (#55819)
* aa
* Removes archeology component. Nukes icon_plating and environment_type in favor of base_icon_state
* Actually maybe lets not use a proc for updating asteroid icon state when its dugged up
* Update plating.dm
* [READY] Nukes archeology component and icon_plating and environment_type in favor of base_icon_state. Dig behaviour code improvement
Co-authored-by: Azarak <azarak10@gmail.com>
* Adds Rocket Backblast (#55681)
This PR adds the backblast element, which when attached to a gun, creates giant plumes of fire when said gun is fired. The PM9 rocket launcher that nuke ops can buy kinda sucks and even a direct hit with the standard rockets loaded isn't enough to guarantee a one-hit crit on a direct hit against an armored opponent, which sucks for how much you pay for it. In that vein, I've also buffed the standard rockets a bit, they now do 50 brute up from 30 on a direct hit, and they create flames on their explosion.
Also makes a tweak to /proc/get_turf_in_angle(), since tile coordinates start at 1,1 instead of 0,0 that proc is now clamped to min 1,1 rather than 0,0
* Adds Rocket Backblast
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Turns squashing mobs into an element (#55725)
Opens up room for extending squashing behavior for future cytology updates.
* Turns squashing mobs into an element
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Favorite cigarette brand is now put in notes (#56038)
If you lose your cigarettes, it's annoying to have to deal with a negative moodlet because the chatlog saying which brand you need expired. This is just for convenience.
* Favorite cigarette brand is now put in notes
Co-authored-by: Coffee <CoffeeDragon16@gmail.com>
* Line change to fix monkeys never devolving into humans if they started as a monkey (#56007)
I wondered if this would be a problem when I originally made #55844 since I only tested on humans devolving into monkeys and back, but not monkeys into humans if the monkey spawned as one.
* Line change to fix monkeys never devolving into humans if they started as a monkey
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Fixes slimes riding monkeys and thus falling off of each other (#55887)
Fixes slimes trying to ride monkeys.
* Fixes slimes riding monkeys and thus falling off of each other
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Nearsightness, Blindness, Tongue-tied on_spawn() code improvements, bug fixes (#55807)
Spawning equipment for nearsighted or tongue-tied people is now safe code-wise, and shouldnt do any bugs, nor will they delete your previous equipment. Also blindness doesn't call a redundant expensive proc
* Nearsightness, Blindness, Tongue-tied on_spawn() code improvements, bug fixes
Co-authored-by: Azarak <azarak10@gmail.com>
* NOTELEPORT errywhere (#55973)
These prevent some cheats or really low effort ways to get to where you really shouldn't be.
Mappers seriously fucking hate jaunting and phasing mechs, as they let you bypass their custom crafted ruins and the like. But it'll also stop more general "you shouldn't be here" stuff.
* NOTELEPORT checks that were atomized out of the medieval shuttle
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Reworks the brand intelligence event with AI controller datums (#55778)
These felt like another good test-case for ai controllers that someone could easily grasp, this makes it so that we can use the actual vending machine instead of a fake mimic mob. In theory you could even still use the vending machine, if you like living on the edge ofcourse.
The vendors now try to move towards you, and try to dive on top of you to squish you.
* Reworks the brand intelligence event with AI controller datums
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Makes the monkey mutation remember your species through transformations (#55844)
* Makes the monkey mutation remember your species through transformations
* Implements suggestions by ghommie
* Makes the monkey mutation remember your species through transformations
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Allows you to tuck the nuclear authentication disk (and plushes) into bed. (#55940)
Adds an element, the tuckable element. Objects with this element can be tucked into bed by hitting a bed with it.
You can now make beds by hitting them with a blanket.
You can now tuck plushes into bed.
You can now tuck the disk into bed, too.
* Allows you to tuck the nuclear authentication disk (and plushes) into bed.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* fixes griddle (#55836)
forgot to set a var to TRUE and also forgot to return TRUE if crowbar act succeeded
* Fixes griddle crowbar interaction + runtime fixes
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* The Great Radio Rework: NTNET Part 1 of many.
* Update airlock.dm
Co-authored-by: WarlockD <warlockd@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Update emotes.dm
* Update emotes.dm
* Update emotes.dm
* Fix spacing, redo some checks, fix bugs
* Add PR to readme, add new file overwrite, fix styling
* Add cooldown to long silicon emotes
* Fixes a metric fuckton, adds global cooldown, etc.
* cry
* unit test makes me cry
* Readd global cooldown on /datum/emote
* Overwrite /emote/beep modularily, instead of having two
* Bugfixes, mixed gender noises, refactors
* Add requested cooldown and volume change, move code about, blahblahblah
* Remove unnecessary cooldown vars from silicon emotes
* Update and prettify readme further.
* Switch default emote gender to female, no sound for non-carbons on certain emotes
* Add volume var and vary to scream run_emote
Co-authored-by: Avunia Takiya <git@takiya.cloud>
* Meat statue fixes (#55790)
Fixes few statue bugs with textured materials.
Makes materials use managed filters. This can have side effects on things that already had unmanaged filters on.
* Meat statue fixes
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Refactor outfit skillchips (#55652)
* 🏭 Refactor outfit skillchips
- Skillchips now are on /datum/outfit, rather than /datum/outfit/job,
since we may want other roles to start with skillchips in the future.
- Skillchips are now a list of types to install, rather than a single
one.
- Traits for the deathsquad are now listed just below the deathsquad
initial antag datum definition.
* Remove accidental debug testing code
It was not intended for janitors to start with engineering skillchips,
and a really weak lightbulb removing skillchip.
* Fix indentation of comment
* Refactor outfit skillchips
Co-authored-by: coiax <yellowbounder@gmail.com>