Adds a new event, "Radiation Leak" (#72655)
Adds a new random event, "Radiation Leak".
A random machine in a random department will begin leaking radiation.
This includes a radiation aura around it, and semi-regular puffs of
smoke clouds containing mutagen and polonium.
The machine will stop leaking after some time, but can also be stopped
by using a random tool on it, indicated in its examine text.
I added a new "radiation emitter" component, for simple "emits
radiation" behavior. Then I made the radioactive mutation use it. This
means that the radioactive gene emits radiation while on stasis and
dead, rather than only in life.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Cleans up food processor code (#73340)
## About The Pull Request
This PR does three things:
- Implements the suggested solution in #63640, items exiting the
processor will remove themselves from the processor list
- ~~Removes an object verb for ejecting the contents of the processor,
moves functionality to alt click~~ kept the verb for now
- Replaces single letter vars, adds autodocs, removes a completely
unused var
## Why It's Good For The Game
Fixes#63640, easier to remove meat slabs you changed your mind about,
and more readable code
## Changelog
🆑
fix: taking an item out of the food processor and putting back in will
not dupe the results when you process them
/🆑
* Cleans up food processor code
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Fixes changing species causing you to drop held items, Fixes loss of right arm not applying typical "lost arm" effects (#73356)
## About The Pull Request
`drop_limb(special = TRUE)` will now no longer drop held items. This can
cause issues if people are misusing `special`, but if people are not
then it's fine, as it's supposed to be replaced just after.
Also cut out some copy-pasta from arm and leg `drop_limb`. Since they're
one unified type, they no longer needed to carry across both. This fixed
another bug
Also also, I was able to move the held index check out of core bodypart
code, and down to arm level. This MAY have side effects, which I'm
observing for.
## Why It's Good For The Game
Changing species let you drop no-drop items, super lame
## Changelog
🆑 Melbert
fix: Changing species no longer drops all held items
fix: Losing your right hand not un-cuffing you or dropping your gloves
/🆑
* Fixes changing species causing you to drop held items, Fixes loss of right arm not applying typical "lost arm" effects
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Document why moths eating clothes is like that (#73382)
People have tried to change this a few times and I want to make sure
it's written in stone that I'm not stupid, just forward thinking
* Document why moths eating clothes is like that
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code (#73106)
The barsign code is over a decade old so this is a big refactor with
some notable improvements:
- Emissive effects (neon lights now glow in the dark)
- Balloon alerts instead of `to_chat` messages
- Mapping helpers based on direction and all_access
- Barsigns are considered machinery now and use power
* Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code
* fixes modular maps
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Refactors the detective scanner to fix potentially getting stuck in the 'scanning' state (#73058)
## About The Pull Request
Detective scanners make use of a `scanning` boolean to determine whether
or not you can perform another action with it.
It gets set to `FALSE` in its procs, but if any of those procs runtime
for whatever reason this could lead to that never happening.
Which in turn leads to it getting stuck in the `scanning = TRUE` state
indefinitely.
---
This PR just moves the functions into wrapper functions so that should a
runtime occur, the boolean will still get set to `FALSE`. Also changed
the boolean's name from `scanning` to `scanner_busy` because it is also
used for the print function.
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/18241
## Why It's Good For The Game
Code resiliency
## Changelog
🆑
fix: fixes a potential bug that can cause the detective scanner to get
stuck in a scanning state indefinitely
/🆑
* Refactors the detective scanner to fix potentially getting stuck in the 'scanning' state
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
* Fix underlying armor logic and fix bug with constructed ripleys having zero armor (#73319)
## About The Pull Request
See title
## Why It's Good For The Game
Messed up one of the armor procs; it changed the given values but never
carried over existing values.
So you would end up with an armor of that one specific value and nothing
else.
This wasn't actually used anywhere other than mecha, lava burning, and
sentient viruses, so the issue isn't that bad.
It's still an issue however.
## Changelog
🆑
fix: Mechs no longer have zero armor when built.
/🆑
* Fix underlying armor logic and fix bug with constructed ripleys having zero armor
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Admins can now customize the stray drop pod event. (#72975)
## About The Pull Request
Gives admins the ability to rig where the stray drop pod will drop in
addition to rigging what type of cargo crate regular drop pods contains
and how many telecrystals and which uplink syndicate droppods will use.
## Why It's Good For The Game
More control for admins regarding drop pods, while admins can spawn drop
pods normally these drop pods have slightly different behavior that
changes their usecase. I think it'd be highly useful for admins to for
example spawn in a clown ops surplus crate as part of a TC trade or
randomly spawn a crate full of gnomes thats announced to the crew so
they can hunt for them.
## Changelog
🆑
admin: Admins can now customize the crate type and landing zone of the
stray drop pod event.
/🆑
* Admins can now customize the stray drop pod event.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Underwear adjustment (#73327)
## About The Pull Request
Adds NO_UNDERWEAR to abductors, androids, and zombies.
## Why It's Good For The Game
These wacky fellows can't show off their freaky bodies while they are
wearing a tacky t-shirt.
## Changelog
🆑 itseasytosee
imagedel: Android abductors and skeletons have lost all modesty and have
stopped wearing underwear.
/🆑
* Underwear adjustment
---------
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
* Fixes Admin Make AI not working on observers (#73353)
## About The Pull Request
Using player panel `make ai` on an observer no longer fails to insert
the player into the created AI.
`ai/Initialize()` does a mind transfer, but observers don't have minds.
Fixes this by moving over any present keys if the player is mindless.
## Why It's Good For The Game
Helps in testing
## Changelog
🆑 Melbert
fix: Fixes player panel "make ai" button not fully working on observers
/🆑
* Fixes Admin Make AI not working on observers
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event (#73024)
## About The Pull Request
This PR description might be a bit rushed because I accidentally
submitted the PR and want to bang out a quick explanation of what this
is before people start asking questions.
Adds a new, rare, ghost-themed anomaly event -- The Ectoplasmic
Outburst.

This event increases in power as more ghosts orbit it, with three
important thresholds to meet.
If 10% or more of all active observers are orbiting the anomaly, an
effect will occur in the nearby area akin to the revenant's defile
spell, damaging flooring, windows, and making a mess.
If 35% or more are orbiting the anomaly, nearby objects in the effect
radius have a chance to become haunted, and will fling themselves at
anyone nearby for a bit. Spooky!
Now, at 50% or more participation, things get serious. Ghosts orbiting
the anomaly will be polled to be brought back into the world for a brief
period as a vengeful spirit, anchored to a SUPER spooky ghost portal.
The portal closes after two minutes (alternatively, smash it with a
toolbox) and deletes all of the ghosts it spawned. Vengeful spirits are
mostly just meant to smash stuff and be a nuisance while they can. It's
a wonderful opportunity to let deadchat desalinate a little.

Oh, also, the anomaly is deadchat controlled. With enough ghosts, you
could theoretically outrun anyone trying to neutralize it!
The associated reactive armor has an effect similar to the anomaly,
haunting nearby objects for a time when the wearer is struck. Not
particularly outstanding, but it can introduce an element of chaos into
a fight that your opponent might not expect.
## Why It's Good For The Game
Anomaly events are great for ghosts. Why not make one tailored just for
them!
Gives admins something to spawn when a wizard has killed half of the
crew but it's not quiiiite time for an ERT.
It's a bit of a silly event with a novelty reward, but I think it's rare
enough not to be a huge issue.
## Changelog
🆑 Rhials
add: Ectoplasmic Outburst anomaly event
add: Reactive Ectoplasm Armor
/🆑
* Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Recenters gravity gens (#73357)
## About The Pull Request
Due to a change in how a gravity generator figured out the turfs it
would be using to create itself, gravity generators were visually
shifted to the right, but the interaction still remained where the main
piece was placed. This just changes `CORNER_BLOCK` to
`CORNER_BLOCK_OFFSET` and offsets the block one tile to the left.
## Why It's Good For The Game
No more wonky gravity generators
Fixes#73083
## Changelog
🆑
fix: Gravity generators have been re-centered.
/🆑
* Recenters gravity gens
---------
Co-authored-by: Shadow-Quill <44811257+Shadow-Quill@users.noreply.github.com>
* adds a pimpin' ride bluespace bag overlay (#73374)
## About The Pull Request
Currently the pimpin' ride displays the normal trash bag overlay when
you put a bluespace trash bag on it. This PR adds a bluespace trash bag
overlay for it.

I thought this was in the game previously but I'm probably
misremembering since there didn't seem to be an existing sprite for it.
I'm not sure how this sits with the feature freeze since there is a code
change in the PR.
## Why It's Good For The Game
The other janicart has a different overlay for bluespace bags, so it's a
bit odd for the pimpin' ride not to have it.
## Changelog
🆑
imageadd: when equipped with a bluespace trash bag the pimpin' ride
janicart will now display a bluespace trash bag instead of a normal
trash bag
/🆑
* adds a pimpin' ride bluespace bag overlay
---------
Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com>
* Admin Request: Trigger Event Panel Includes a Gear on Events That Have Admin Setups (#73151)
## About The Pull Request

Admin events with admin setups now have a gear icon on the right of the
button.
## Why It's Good For The Game
Requested by @ NamelessFairy for future admin compatibility development
and a small indication in game of potentially more customizable events
for... well, admin events!
## Changelog
🆑
admin: There's a cog next to events you can trigger if it has an admin
setup.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Admin Request: Trigger Event Panel Includes a Gear on Events That Have Admin Setups
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Refactors Admin Setups on Forced Events + Refactors Vending Sentience + Refactors Shuttle Loans (#72998)
- [x] TEST EVERYTHING
tested:
- Pirates
- Vending Machines
- Shuttle Catastrophe
- Anomalies
- Immovable Rod
- Sandstorms
- Scrubber Overflow
- Stray Meteor
- Madness
- Department Revolt (Well obviously, it is my super robust code after
all)
- Shuttle Loan
- Mass Hallucination
- Heart Attack
- False Alarm
Disease Outbreak is probably fine aha... It correctly reports that there
are no candidates before aborting.
allow you to let the game decide where previously you had to choose!
I need to refactor and datumize how admins set up special conditions on
forced events, so I did! Now `/datum/event_admin_setup` handles admin
settings, with a few prototypes to make it easier to give events admin
options in the future. This was exhausting and what 90% of the pr is.
The code was so bad I could not datumize the admin part of it so I
cleaned it up, making a lot of things in the event get decided in
`setup()` where they should.
The code was so bad I could not datumize the admin part of it so I
cleaned it up AS WELL, by datumizing the shuttle loans. Should be easier
to add more types in the future, actually kinda stoked.
This is preparation for a tgui change to ForceEvent.ts an admin has
requested. Phew!
🆑
refactor: Refactored a bunch of admin-related event code, hopefully you
won't notice much
admin: ... But you specifically may notice some minor differences. Raw
inputs changed into tgui ones, minor soul removal, etc.
/🆑
* remove override
* merge conflict
* dm update
* merge conflict
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Soporific magazines use the correct icon, penetrator and marksman magazines now have icons. (#73217)
## About The Pull Request
Fixes#73192
Soporific sniper rifle magazines had used the wrong icon, I've fixed
this, I'm also re-purposed an old unused magazine sprite and added a new
one for the other 2 sniper ammo types.
## Why It's Good For The Game
Bug fix + now the alt sniper ammo types have unique sprites.
## Changelog
🆑
fix: Soporific sniper magazines use the correct icon again.
imageadd: Penetrator and Marksman sniper magazines now have icons.
/🆑
* Soporific magazines use the correct icon, penetrator and marksman magazines now have icons.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Minor improvement to blast door construction. (#73038)
## About The Pull Request
This PR does some QOL tweaks to blast doors and their construction.
Namely, adding some balloon alerts to the whole construction process
(adding, removing electronics, adjusting their electronics IDs).
Additionally, adds some extra examine text to an open blast door by
explaining that you can multitool it to adjust the ID, and that it must
match that of the blast electronics to be added to a wall frame.
Adjusts a forcedrop to a `move_to_hands` because it's 2023 and we trust
that users can hold things during a attack_hand proc.
Also adds some description to button frames as well to guide them that
they can install and remove electronics and boards while open.
I'm gonna be real, this needs a LOT more work than this to be up to code
standards, but this was what I could pull off in the 30 minutes before I
need to sleep while away on business, but it's a start nonetheless.
## Why It's Good For The Game
Button frame code is practically ancient, yet it's still widely used to
this day. It needs some real polish more than this, but for now this
will at least make the construction process more intuitive and clear.
Also to that guy who I said I would do this about a month ago I'M SORRY
I'VE BEEN TRAPPED IN THE **_SUPERMAX WAGE CAGE_** I CAN PROVE IT
~~Wait what do you mean you need to make player made blast doors through
the CRAFTING UI WHAT THE FUUUUUUUU~~
## Changelog
🆑
qol: Improves feedback on buttons as well as the blast door electronics
so that installing your very own blast doors is less tedious.
/🆑
* Minor improvement to blast door construction.
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Starlight Polish (Space is blue!) (#72886)
<!-- 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
Adds support to underlays to realize_overlays
Ensures decals properly handle plane offsets
Fixes space lighting double applying if it's changeturf'd into. this
will be important later
Makes solar vis_contents block emissives as expected
Moves transit tube overlays to update_overlays, adds emissive blockers
to them
#### Adds render steps
An expansion on render_target based emissive blockers.
They allow us to hijack an object's appearance and draw it somewhere
else, or even modify it, THEN draw it somewhere else.
They chain quite nicely
Fixes shuttles deleting z holder objects
#### Makes space emissive, makes walls and floors block emissives
The core idea here goes like this:
We make space glow, and give its overlays some color
This way, the tile and space parallax remain fullbright, along with
anything that doesn't block emissives, but anything that does block
emissives will instead get shaded the color of starlight
This requires a bit of extra work, see later
This is done automatically with render relays, which now support
specifiying layer and color (Need to make an editor for these one of
these days)
The emissive blocking floor stuff requires making a second render plate
to prevent double scaling
Also adds some new layering defines for lighting, and ensures all turf
lights have a layer. We'll get to this soon
#### Makes things in space blue
We color them the same as starlight, by taking advantage of space being
emissive
This means that things in space that block emissive will block it
correctly and be colored blue by the light overlay, but space itself
will remain fullbright
This does require redefining what always_lit means, but nothing but
cordons use that so it's fineee
#### Makes glass above space glow, and some other stuff
Glass tiles that sit above space will now shine light with matching
color to the glasses color. This includes mat tiles.
Glass tiles (not mat because they have no alpha) also only partially
block emissives.
Adds a new proc that uses render steps to acomplish this, essentially
we're cutting out bits below X alpha and drawing what remains as an
emissive.
#### Modifies partial space showing to support glow
Essentially, alongside displaying space as an underlay, we also display
a light overlay colored like starlight.
That starlight overlay gets masked to only be visible in bits that do
not contain any alpha.
We also mask the turf lighting to not go into bits that have no alpha,
to ensure we get the effect we want.
This is done with that lighting layer thing I mentioned earlier.
#### Makes appearance realization's list output ordered
I want it output in order of overlay, sub overlay suboverlay, next
overlay
Need to use insert for that
## Why It's Good For The Game
Pretty!
Also having space be emissive is a very very good way to test for fucked
emissive blockers (If it's broken why are we even drawing the overlay)
I know for a fact mob blockers on lizards and socks are kinda yorked, I
think there's more
<details>
<summary>
Old
</summary>



</details>
<details>
<summary>
New
</summary>



</details>
## 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. -->
🆑
add: Space now makes things in it starlight faintly blue
fix: Glass floors that display space now properly let space shine
through them, rather then hiding it in the dark
add: Glass floors above space now glow faintly depending on their glass
type
/🆑
<!-- 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. -->
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* update modular
* Update _decal.dm
* Update _decal.dm
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Remove NTNet from doors (saves 0.2s of init) -- Fixes windoors not working with remotes, and balloons them (#71735)
## About The Pull Request
Removes NTNet from doors. NTNet as a whole is getting excised, but this
was an enormous cost to initialize. Was only used for door remotes, so
just changes them to act on the door directly.
Windoors were supposed to be controllable, but were broken at some point
to always display an error message in chat.
Closes https://github.com/tgstation/dev-cycles-initiative/issues/3
## Changelog
🆑
fix: Door remotes now open windoors again.
qol: Door remotes now use balloon alerts for failures.
/🆑
(cherry picked from commit db2566f44d)
# Conflicts:
# code/game/machinery/doors/airlock.dm
* Update airlock.dm
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Fixes a bug where glide-size could become out of sync if you get unbuckled (#73150)
This fixes a bug where you could theoretically un-sync your glide-size
from your movespeed if you unbuckled. Currently, if you unbuckle, we use
a proc that's only used there which gets all of the slowdowns from all
of your movespeed modifiers. There's two problems with that:
1. We already have a variable with your movespeed (cached)
2. This proc does not check any of the conditionals that might make a
movespeed modifier not apply, such as whether or not you are flying, or
if you're immune to it for some other reason.
This means that in specific edge-cases you could mess up your
glide-size.
I have not actually seen this happen, but this seems like a better way
of doing it :)
* Fixes a bug where glide-size could become out of sync if you get unbuckled
---------
Co-authored-by: CapybaraExtravagante <110635252+CapybaraExtravagante@users.noreply.github.com>
* Adds two new Sanguine spells to expand the splattercasting set: Exsanguinating Strike and Scream For Me! (#73019)
Adds two new spells. These are "Sanguine" school spells, which means
they do not interact with splattercasting. This is good for
splattercasting wizards, because they can use these spells to gain back
blood without losing the blood casting them.
Sanguine Strike
Empowers your next melee attack to deal more damage (either double or
+20, whichever is less), lifesteal for that amount, and steal 50 blood
from your target.
Scream For Me
Touch attack that applies severe blood wounds on every limb of your
target. Yeah, they're going to be dead shortly after.
Splattercasting is a super unique way to play wizard and I think people
are pretty warm to it, but without enough support for getting more blood
back the most common way these people are dying is simply to blood loss.
This should help them replenish blood a bit easier than feasting on
someone, while still leaving feasting as a good option for a LOT of
blood back.
* Adds two new Sanguine spells to expand the splattercasting set: Exsanguinating Strike and Scream For Me!
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fixes new regal rat sprite & removes duplicate file (#73306)
Removes a duplicate file which was preventing the new regal rat sprite from being used.
* Fixes new regal rat sprite & removes duplicate file
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* more sdql2 wrapper procs (#73336)
## About The Pull Request
adds findtext (+ex), view, viewers, rectangle turfs and flick as sdql2
wrappers
## Why It's Good For The Game
more fun admin stuff
## Changelog
🆑
admin: adds findtext (+ex), view, viewers, rect_turfs and flick as sdql2
wrappers
/🆑
* more sdql2 wrapper procs
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fixes reverse revolver name (#73315)
## About The Pull Request
Reverse revolver is now named "Syndicate Revolver", same as the normall
syndie revolver.
Fixes https://github.com/tgstation/tgstation/issues/73313
## Why It's Good For The Game
Fix
## Changelog
🆑
fix: Fixes reverse revolver name being different from syndicate revolver
name
/🆑
* Fixes reverse revolver name
---------
Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
* Dominate & Lazarus Inject basic mobs. Lazarus Injected mobs don't fight each other. (#72440)
Fixes#72404
The Lazarus Injector doesn't currently work on basic mobs, but should.
Problem:
The EMPed state of the Lazarus Injector is intended to make a revived
mob hostile to everyone except you, including other mobs you have
revived wtih an EMPed Lazarus Injector.
This is trivial to achieve for Simple Mobs which essentially all share
the same AI, but I could not think of a single workable solution for
Basic Mobs which don't, or at least any which didn't come with a tedious
requirement to closely consider this niche item when programming any
additional AI.
Solution:
Change the default behaviour of the Lazarus Injector so this is not a
problem.
If all it does it make the mob loyal to you _and_ friendly to other mobs
which are loyal to you, then it's pretty easy because we can just use
the existing faction flags.
This is unambiguously a buff to using the item for nefarious purposes as
now if you revive four ice drakes and fulton them onto the station they
won't kill each other until only one is left, but is the only workable
solution I could really think of.
A lot of the very dangerous mining fauna can't be dragged so
transporting your army to the station still poses a question.
The alternate solution was just to replace the AI controller of any
emp-revived basic mob with a "zombie" AI controller, but this has the
problem that
A- It would now make things like cows and dogs into hostile creatures
when they previously weren't.
B- It loses any interesting behaviour the mob previously had and for
cases like Bileworms doesn't even make any sense (they'd try to walk and
just get stuck in place).
This ultimately leads to needing to make bespoke versions for various
mobs, which doesn't seem desirable from a maintainability standpoint.
As a side note it's still not a great idea to revive Bileworms _anyway_
as, their ability to move is tied to their ability to attack so once
they don't have a target they will just kind of sit there and if they
_do_ get a target their attempts to help you fight are difficult to
distinguish from attempts to kill you... but at least being able to
revive them makes it easier to make one sapient if you really want to
trap a player's mind inside a body which is incapable of leaving
lavaland.
Additional edit:
At Fikou's suggestion I've also added a sentience comparison proc to
`mob/living` and removed some code duplication which dealt with this
problem in the sentience/mind transfer potions, as well as added it to
the Dominate spell.
This device is meant to revive mobs and it shouldn't be required for
players to memorise an arbitrary list of which mobs it does and doesn't
work on.
Especially as the goal is eventually that all simple mobs should be
basic mobs.
This way of working is more intuitive, even if it is also stronger. I
was surprised when I used EMPed injectors and my "new minions" just
killed each other.
🆑
fix: You can now revive 'basic mobs' with a Lazarus Injector, such as
dogs, cows, axolotls, or carp.
fix: The same category of mobs can also now be effected by the Runic
Golem Dominate spell.
fix: Basic Mobs will switch target if they can no longer attack their
current target; meaning that if you become a Bileworm's friend it will
stop attacking you.
balance: Mobs injected with the Lazarus Injector while it is EMPed will
no longer attack other mobs revived by EMPed Lazarus Injectors.
/🆑
* Update code/modules/research/xenobiology/xenobiology.dm
* Update code/modules/research/xenobiology/xenobiology.dm
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Big Paperwork: Adds the Paperwork loan offer, paperwork fraud, and ancient paperwork! (#70863)
Adds paperwork -- an indecipherable mess of papers that only a seasoned
department head could hope to decipher. If processed and sent to Central
Command via the cargo shuttle, the budget gets a bonus.
Paperwork is distributed through a new Shuttle Loan offer. A nearby
station needs some paperwork reviewed. Do you have what it takes to
handle BIG PAPERWORK?
Processing paperwork is relatively simple. You can inspect it to see
which head of staff it "belongs" to, and you can use their stamp to
complete it. You get a lot of these, so the bonuses can add up if you
get them all in. Just be careful not to return any unprocessed
paperwork.
With big paperwork comes big paperwork fraud, and big fines.
You can photocopy your completed paperwork to double-dip with Central
Command and squeeze out a little bit more money. The more paperwork
fraud you commit, the higher the chance you'll be caught and fined.
On top of that:
Some say that in the long forgotten halls of maintenance, there lies
_ancient paperwork_. Documents whose importance has long since passed,
but are still important for bookkeeping at Central Command. With a keen
eye, you might spot one of these while scouring through maintenance.
Make sure it gets forwarded to the right person, cargo will thank you.
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes the buggy reaction behavior by further modularizing liquid code
* removed another unneeded skyrat edit
* These are actually not needed after all.
* Vox clowns and mimes now spawn with their masks, added gas mask filters for vox
Fixed vox clowns and mimes not spawning with their job-related masks.
Added said job related masks.
* Moved the gas masks out from breath and into gasmask.dm
* Fixes unused proc from tg that is used on Skyrat
give_important_for_life() proc is a cleaner way to do the vox outfit-giving but I noticed it was not working. The proc itself was bugged, fixed it.
* Update species.dm
* Revert "Update species.dm"
This reverts commit 5b737965f573258211dc219fb6399284cdee8749.
* Revert "Fixes unused proc from tg that is used on Skyrat"
This reverts commit 3d8219a347cee0c17e99d4de32f5ebb3d70585cb.
* Fixes give_important_for_life() proc
give_important_for_life() proc is a cleaner way to do the vox outfit-giving but I noticed it was not working. The proc itself was bugged, fixed it.
* revert skyrat edit, wait for upstream PR to merge
* Fixes potential issue with null jobs, handle vox outfits properly for 'other vox'
* Removed gas filtering flags on the clown and mime masks
* Fixes a balaclava that made you go bald
* Created missing sprites for the alternate versions
Now you can change the style with the radial menu
* ocd edit
* No longer needed as it is handled within equip
* Merge conflict update..
* No longer needed after the update to equipOutfit
Opening internals in hand slots is now done automatically there #19054
* Adjusts exclamation marks to forgotten 'loud' emotes. (#73326)
## About The Pull Request
A player expressed disappointment that as an artificer their yell ended
with a period and not an exclamation mark. They said it did not express
the hell of being a simple mob.
I think these are the only ones that needed to be corrected.
## Why It's Good For The Game
Exclamation marks show a heightened level of expression, heightened
expression allows for more in-depth roleplay, roleplay good.
## Changelog
🆑
spellcheck: Adjusted punctuation marks for several emotes.
/🆑
* Adjusts exclamation marks to forgotten 'loud' emotes.
---------
Co-authored-by: carshalash <carshalash@gmail.com>
Add investigate_deaths (#71112)
## About The Pull Request
Adds INVESTIGATE_DEATHS, an investigate category intended to better show
causes of death.


Also makes suicide_act take a `mob/living` as an argument instead of a
`mob`, and some minor style improvements since apparently I hate
atomicity.
## Why It's Good For The Game
Inspired by a mysterious death and dusting. More logging and leads for
admins investigating deaths.
Also fixes#59028
## Changelog
🆑 Tattle
admin: added investigate deaths to shed some more light on unusual
demises, dustings, and gibbings
/🆑
Co-authored-by: tattle <article.disaster@gmail.com>
(cherry picked from commit ad5debaaa1)
# Conflicts:
# code/datums/dna.dm
# code/game/machinery/washing_machine.dm
# code/game/objects/items/clown_items.dm
# code/game/objects/items/food/misc.dm
# code/game/objects/items/food/monkeycube.dm
# code/game/objects/items/stacks/sheets/glass.dm
# code/game/objects/items/storage/toolbox.dm
# code/game/objects/items/tools/crowbar.dm
# code/game/objects/items/tools/screwdriver.dm
# code/game/objects/items/tools/wrench.dm
# code/game/objects/items/weaponry.dm
# code/game/objects/structures/petrified_statue.dm
# code/modules/antagonists/heretic/magic/nightwatcher_rebirth.dm
# code/modules/mob/living/carbon/human/death.dm
# code/modules/mob/living/living_defense.dm
# code/modules/mob/living/simple_animal/guardian/guardian.dm
# code/modules/mob/living/simple_animal/hostile/headcrab.dm
# code/modules/paperwork/stamps.dm
# code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
# code/modules/reagents/chemistry/reagents/toxin_reagents.dm
# code/modules/shuttle/on_move.dm
# code/modules/spells/spell_types/touch/smite.dm
# code/modules/vehicles/mecha/equipment/tools/mining_tools.dm
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
* clear pai tracking when hacking cable retracts (#73302)
## About The Pull Request
We track the pai aswell as the cable to check for the pai moving away
from the user
But we never clear that tracking
Also adds a check for the check proc to not run if there isn't even a
hacking cable
## Why It's Good For The Game
resolves#73222
## Changelog
🆑
fix: Using a hacking cable will no longer permanently spam you with
balloon messages
/🆑
* clear pai tracking when hacking cable retracts
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Returns limited stock for traitor discounts (#72981)
While checking old PRs to debug something (someone bought 5 crab phones,
this might have been fixed by a recent PR though), I have discovered
that before progression traitor has been added, Traitor discounts used
to have a limited stock of one per item. However, right now it is
infinite. I have asked @Watermelon914 to look over my findings, and they
agreed that it must have been an oversight. I have restored the original
value.
If the current state of discounts turned out to be more desirable, or on
further investigation this turns out to be not an oversight, I can close
this.
Further proofs: #22429 added discounts, they meant to be one time
purchase.
Being able to buy ten syndie bombs for 2 TC each was probably not
intended, nor is creating General Beepsky at such a big fraction of the
intended cost, or buying two clown cars at round start amount of TC, or
handing out 10 ebows or sleeping carp scrolls.
Unintended mass purchasing of items feels more like an exploit than a
fun gimmick.
🆑
fix: Traitors discounts stocks are once again limited to one item
/🆑
* Returns limited stock for traitor discounts (#72981)
While checking old PRs to debug something (someone bought 5 crab phones,
this might have been fixed by a recent PR though), I have discovered
that before progression traitor has been added, Traitor discounts used
to have a limited stock of one per item. However, right now it is
infinite. I have asked @Watermelon914 to look over my findings, and they
agreed that it must have been an oversight. I have restored the original
value.
If the current state of discounts turned out to be more desirable, or on
further investigation this turns out to be not an oversight, I can close
this.
Further proofs: #22429 added discounts, they meant to be one time
purchase.
Being able to buy ten syndie bombs for 2 TC each was probably not
intended, nor is creating General Beepsky at such a big fraction of the
intended cost, or buying two clown cars at round start amount of TC, or
handing out 10 ebows or sleeping carp scrolls.
Unintended mass purchasing of items feels more like an exploit than a
fun gimmick.
🆑
fix: Traitors discounts stocks are once again limited to one item
/🆑
* Returns limited stock for traitor discounts (#72981)
While checking old PRs to debug something (someone bought 5 crab phones,
this might have been fixed by a recent PR though), I have discovered
that before progression traitor has been added, Traitor discounts used
to have a limited stock of one per item. However, right now it is
infinite. I have asked @Watermelon914 to look over my findings, and they
agreed that it must have been an oversight. I have restored the original
value.
If the current state of discounts turned out to be more desirable, or on
further investigation this turns out to be not an oversight, I can close
this.
Further proofs: #22429 added discounts, they meant to be one time
purchase.
Being able to buy ten syndie bombs for 2 TC each was probably not
intended, nor is creating General Beepsky at such a big fraction of the
intended cost, or buying two clown cars at round start amount of TC, or
handing out 10 ebows or sleeping carp scrolls.
Unintended mass purchasing of items feels more like an exploit than a
fun gimmick.
🆑
fix: Traitors discounts stocks are once again limited to one item
/🆑
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Rebuilds Luxury Shuttle (mostly), makes it emag-only (#72940)
## About The Pull Request

Changes the really goofy old lux shuttle to a cooler layout with some
additions to make it a luxury and not just
"anti-poor-people protection + food"
Shuttle was made bigger to make it less cramped for the luxury class,
pool was moved to its own room, added an arcade
and a bar corner, has real lasers to shoot poors with (20c each shot),
has fire extinguishers now
Adds a new preopen variant of hardened shutters
Adds a paywall pin subtype for the luxury shuttle, and a laser gun
subtype
Made emag-only at a price of 10000 credits
## Why It's Good For The Game
The old luxury shuttle looked REALLY awful with its pool, was pretty
cramped even in the luxury section and BARELY resembled a luxury..
This luxury shuttle provides luxuries such as a less poorly designed
pool, more space for legs, arcade, to make it resemble a luxury unlike
the old one
## Changelog
🆑
add: Luxury Shuttle is now bigger, and less ugly! Poor people still get
it rough though...
/🆑
* Rebuilds Luxury Shuttle (mostly), makes it emag-only
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Fixes bluespace golems teleporting without cooldown (#73130)
## About The Pull Request
Bluespace golems now have cooldown on their unstable teleport ability.
It will start when they do the teleport itself rather then just clicking
the action, so spamming the action button to get teleported many times
into random points of the station is still here(it is funny and it will
be cool to keep it as a feature).
## Why It's Good For The Game
Bugfix
## Changelog
🆑
fix: Bluespace golems no longer can teleport without cooldown
/🆑
* Fixes bluespace golems teleporting without cooldown
---------
Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
* fixes throw click cooldown not applying (#70995)
throw_item never returns anything so it just broke the whole thing. this fixes that
* Update code/modules/mob/living/carbon/carbon.dm
* Update code/modules/mob/living/carbon/carbon.dm
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>