* Fix nuclear operative induction implants (#79554)
## About The Pull Request
Fixes#79547#78597 broke induction implants by replacing the "has antag datum" check
with a "does not have a fake antag datum" check which passes on a null
case. I added an `isnull()` check to cover this.
The introduced `antag_flags` var was by default set to
`FLAG_FAKE_ANTAG`, presumably in error as the only antag datums to
override this are ERT and Valentines and they just set it to
`FLAG_FAKE_ANTAG` anyways. This also means the induction implants ONLY
worked on non-antags and anybody with any antag datum would fail the
implant. I changed the default to `NONE`. This may have some knock-on
effects as `is_special_character()` was returning `FALSE` with any antag
datum (unless allow_fake_antags was passed) but no special role which
this also fixes.
## Why It's Good For The Game
Non-antags can no longer self-antag their way onto a nuclear operative
team and antags can now antag their way onto a nuclear operative team.
## Changelog
🆑
fix: Nuclear operative induction implants now work correctly on
antagonists and fail on non-antagonists
/🆑
* Fix nuclear operative induction implants
---------
Co-authored-by: Isratosh <Isratosh@hotmail.com>
* Being drunk gives a chance to harm yourself when working out (#79548)
## About The Pull Request
Working out when sufficiently drunk (around the amount that drunk
resilience begins to heal you) now has a scaling chance to cause you to
fail and harm yourself (similar to how clumsy works) when using an
exercise machine
None of these values are final and I'm open to making the failure it
more severe (bone wounds)
## Why It's Good For The Game
Partly cause its funny, partly cause realism, really cause I felt like
expanding on interactions for the exercise equipment
## Changelog
🆑
add: Being sufficiently drunk now has a chance to cause working out to
fail and harm you
/🆑
* Being drunk gives a chance to harm yourself when working out
---------
Co-authored-by: D4C-420 <75496851+D4C-420@users.noreply.github.com>
* Fixes Shaving Beards + Mirror Code Improvement (#79529)
## About The Pull Request
Fixes#79519
Basically we did a lot of assumptions that we really shouldn't do in the
whole magical mirror framework (like having a boolean value for magical
mirrors, what?). Anyways, I just made the UX experience a lot better
when it came to bearded persons with feminine physiques to easily shave
off their beard with an additional confirmatory prompt + details as well
as keeping the nature of the magical mirror (giving you a swagadocious
beard due to magic™️) intact.
## Why It's Good For The Game
There was a lot of convoluted code that skipped through the quality
filter checks (it was me i think) so let's both make the code far easier
to grasp as well as ensure that people who legitimately acquire beards
and wish to keep them, keep them.
We were also doing some FUCK shit on attack_hand and the like
(overriding a FALSE return signal to return TRUE is not what we should
be doing there)- so that's also cleaned up.
## Changelog
🆑
fix: Both magic mirrors and regular mirrors are far better at respecting
the choice of the beard you wish to wear (within reason, of course).
/🆑
* Fixes Shaving Beards + Mirror Code Improvement
* Update mirror.dm
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Adds a sleeve of tiling colors for several holidays. (#79188)
## About The Pull Request
Inspired by #79108. This concerns Christmas, many national holidays and
a few gimmicky ones where it'd make sense.
Oh, yeah, I've also added "Sacrebleu" to the list of possible station
prefixes for the Bastille day, since "Merde" is already there.
<details>
<summary>some screenshots (got tired of restarting the server over and
over halfway through)</summary>
### St. Patrick (Ireland) :

### Bastille Day (France) :

### Waitangi Day (Union Jack colors, New Zealand) :
**No, it isn't the french flag again, it's the tram tiles that always
display the pattern in vertical stripes...**

### Christmas (Before I realized it looks like the italian flag so I've
removed the white) :

</details>
## Why It's Good For The Game
Implemeting a smidge of festivity and/or celebration to several
holidays. Open to suggestions and thoughts.
## Changelog
🆑
image: Several holidays now have themed floor and tram tiling.
/🆑
* Adds a sleeve of tiling colors for several holidays.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* This is a test
Please add me this is a test
* Fixes cigs_lighters.dm
Zippo sounds were mixed up.
* Adds SKYRAT EDIT comments
Adds skyrat edit addition comments to to cigs_lighters.dm on line 859 and 845
* Changes file location of zippo sounds
As well as updates code pathing. Tested.
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Coloured holobarriers (#79219)
If the projector is spray painted, the barriers will match the colour of
its projector
* Coloured holobarriers
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Reworks Rolling Table Code (#79490)
## About The Pull Request
Should be a good first step towards reducing the behavior declared in
#79411, but since I couldn't get a good reproduction case, we'll have to
live with that.
Basically, our SIGNAL_HANDLER procs were using some way outdated
arguments, causing some bits of the code to seem rather... illogical (we
thought the old location was the new location??? it's wack). Anyways, I
just gutted most of it and kept the same overall behavior that only
lives on signals rather than doing weird stuff with proc overrides.
## Why It's Good For The Game
If it doesn't root out the cause of the aforementioned issue, it should
be far easier to figure out what the true issue is (when we get a proper
reprod. case) beyond having weird arguments on our signals.
## Changelog
I'm not certain if this fixes the issue but if it does, yippie. Worst
case scenario it's a good code improvement- neither of those are good
enough to show to players.
* Reworks Rolling Table Code
---------
Co-authored-by: san7890 <the@san7890.com>
* Add fingerprint data for holobarriers (#79358)
## About The Pull Request
Adds player ckey to who builds a holobarrier, for admin use
## Changelog
## Changelog
🆑
admin: Holobarrier creation now adds player fingerprint data
/🆑
* Add fingerprint data for holobarriers
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Changes the description of mothic rations poster (lore pr) (very important) (#79440)
## About The Pull Request
Swaps windgrass for sparkweed in the description of the mothing rations
poster
## Why It's Good For The Game
EOB asked me to change this since windgrass was meant to be a similar
future addition but we have more fleshed out lore for sparkweed now
See here for more information
https://github.com/tgstation/common_core/pull/44🆑
spellcheck: The Mothic Rations Chart poster description now mentions
Sparkweed Cigarettes rather than Windgrass
/🆑
* Changes the description of mothic rations poster (lore pr) (very important)
---------
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
* Basic Constructs: Proteon (#79425)
## About The Pull Request
Last one! Makes proteons into a basic mob, and completely removes the
simple_animal construct supertype.
Proteons aren't really designed to be played by a player, instead being
a nuisance mapped into various ruins and traps. As such, they don't
really have any special abilities. Instead, the hostile variant has a
somewhat unique behavior. They'll viciously attack anyone who comes
close, but, being frail little cowards, if a proteon takes damage it
will immediately flee. After a random period between 2 and 4 seconds, it
will stop fleeing and come back for more.
In addition to this, a few other things have been done, some only
related because they're in files I touched.
- Moved proteons from the file for the Cleric's Den to their own file in
the basic constructs folder. Given that they're used in several
different ruins, they might as well not just be in the file for one.
- Simple constructs have been cut, and with them the procs for
healing/repairing on shades and cult structures, as those are no longer
needed.
- Because I was touching it anyway, I touched up the file for trap
structures. They no longer use any one-letter variable names, and time
is now universally listed in seconds rather than deciseconds in that
file.
- I removed a completely unused blackboard key from ice demons. This is
something I noticed due to a change I ended up not making while working
on proteon AI, but I figured I might as well leave it gone.
## Why It's Good For The Game
Kills the last three simple construct typepaths, bringing us to the
destined 19 removed. Huzzah!
The proteon AI routine should inject a little spice into fighting
proteons, especially for the unprepared - unlike many mobs, they won't
stand there and take it if you decide to fight back, but you can never
safely ignore them when they run away. They still aren't particularly
dangerous.
## Changelog
🆑
refactor: Proteon constructs now use the basic mob framework. The ones
encountered in ruins are a bit flightier now, and will briefly flee
combat if attacked - only so that they can return and menace you again
soon after. Please report any bugs.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Basic Constructs: Proteon
* Update defcon2.dmm
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Allows RPD Upgrade Disks to be installed by hand (#79343)
## About The Pull Request
Closes#79301
Saw this PR, realized how much this annoyed me whenever I played. Not a
hard fix either, since RCD's were a perfect example.
(In the future perhaps items that use upgrades like this could have one
base type of disk, and a component for 'upgrade_disk_tool', but that's
way, WAY out of my experience. Just something I noticed between the RPD
and RCD disks.)

One on the Left already has the upgrade. Neither try to double-install
it! (Shown for posterity)
Ones on the right are installed both ways. One, the RPD on the Disk. The
other, the Disk on the RPD!
---
Actual PR changes:
- New proc on the RPD called `install_upgrade()` - If the upgrade disk
isn't installed, it installs it onto the RPD and deletes the disk. So,
the same as the RCD one, but fewer checks since the RPD's got a lot
fewer disks. But, easier to add new ones now.
- Since `install_upgrade()` is a thing, the attack chain's code for how
RPD's originally got upgraded is now much shorter. It still functions
the same, though - nothing was removed in this PR!
- Adds an attackby check - if the RPD's attacked by an upgrade disk it
will try to `install_upgrade()`. So basically, what RCD's have.
## Why It's Good For The Game
Consistency between the RPD and RCD upgrade-wise. The RPD's other method
of installing (hitting the disk WITH the RPD) still works, but now
players used to the RCD won't get confused.
## Changelog
🆑
qol: The RPD now accepts upgrade disks inserted by hand, as well as
their original method of hitting the disk with the RPD
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Allows RPD Upgrade Disks to be installed by hand
---------
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Steam vent tooltips (#79420)
## About The Pull Request
Steam vents now have basic tooltips to show you how to toggle them
in-hand. I've also added a tooltip to show you to use the wrench to
deconstruct.
## Why It's Good For The Game
Improves the clarity of an otherwise common maintenance object, both in
regular use as well as when deconstructing.
## Changelog
🆑
qol: Steam vents in maintenance now have tooltips.
/🆑
* Steam vent tooltips
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Holobarrier toggle removal (#79293)
## About The Pull Request
this PR removes the PENLITE holobarrier’s biometric scanner toggle
function activated by hitting the holobarrier.
## Why It's Good For The Game
This is good for the game as having the toggle is quite useless because
the only reason someone would have it up is to keep sick people out.
There is no point to turning off the biometric scanning because you may
as well have nothing put up in the first place.
This also prevents people from unknowingly turning it off allowing sick
patients to infect valuable medical staff.
## Changelog
:cl:deathrobotpunch1
del: Removed the biometric scanning toggle from the PENLITE holobarrier
/🆑
* Holobarrier toggle removal
---------
Co-authored-by: deathrobotpunch <87455177+deathrobotpunch@users.noreply.github.com>
* Chameleon projector can be used on storage items. (#79263)
## About The Pull Request
Fix bug that you can't use chameleon projector on items with
datum/storage(backpacks, box, holsters etc). Now you can right-click on
it to copy icon.
## Why It's Good For The Game
https://github.com/tgstation/tgstation/issues/55143#issue-749661132
## Changelog
🆑
fix: chameleon projector now can copy icon for storage items(backpacks,
box, holsters etc) using right-click on it.
/🆑
* Chameleon projector can be used on storage items.
---------
Co-authored-by: Xackii <120736708+Xackii@users.noreply.github.com>
* Gives the Revolvers on the Nuke Ops uplink Syndicate Firing Pins (#79327)
## About The Pull Request
gives revolvers on the nukie uplink syndie firing pins
## Why It's Good For The Game
Every other firearm on the nukie uplink has a syndie firing pin.
## Changelog
🆑
fix: The Syndicate Revolver now has a Syndicate Firing Pin on the Nuke
Ops uplink.
/🆑
* Gives the Revolvers on the Nuke Ops uplink Syndicate Firing Pins
---------
Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com>
* fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them (#79367)
## About The Pull Request
Title
## Why It's Good For The Game
Less headache in the future for a macro thats not really obvious in what
it does
## Changelog
🆑
fix: signals in circuits now actually function
/🆑
* fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* [NO GBP]Fixes tesla zaps. (#79398)
## About The Pull Request
Closes#79297Closes#79312
Due to the new cutoff parameter being added to tesla_zap() (from
#78310), and most callers used positional arguments instead of keywords,
the zap flags was getting fed the shocked_targets list and maybe other
junk. This caused a bunch of unusual phenomena. This is fixed by using
keyword arguments.
Tesla zaps that use the grid were significantly weaker in terms of
damage than they're supposed to be. This was a byproduct of trying to
convert everything to joules and removing unnecessary power multipliers.
This is fixed by reverting the damage scaling and zap power of zap
sources that aren't based on grid. Technically this will cause the zaps
from other sources to have less power, but these tend to not be able to
put power on grid, so this wouldn't have any change other than what a
grounding rod displays. Doesn't really matter.
Logs machine explosions from zap_act. Not the most helpful log (would
take a lot of effort to add an extra parameter to pass the source), but
better than nothing.
Probably other stuff I did, lol.
## Why It's Good For The Game
Stops zap fuckery. Admins can now find the explosions when a 9GeV engine
decides to go haywire or whatever.
## Changelog
🆑
fix: Fixes tesla zaps being weird.
admin: Logs explosions from explosive zaps.
/🆑
* [NO GBP]Fixes tesla zaps.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Dehardcodes microwave cleaning, allows spray cleaner to work on dense objects such as windows (#79354)
## About The Pull Request
- Dehardcodes microwave cleaning
- Instead of hard istyping for a rag, soap, or space cleaner, we just
use `wash`.
- Gets rid of a redundant signal
- `COMSIG_ATOM_WASHED`: not only was it misleading (only sent to items),
but it was pointless because `COMSIG_COMPONENT_CLEAN_ACT` is the same
signal.
- Improves microwave attackby code, splitting tool stuff into tool-procs
- Allows spray cleaner to work on dense objects such as windows
- Clicking on a dense object or mob adjacent to you with spray cleaner
will spawn the puff cloud on the target, rather than on your own
position.
- This will skip the moveloop and just clean everything on the target
turf alone.
- This means you can spray down a bloody window with a spray bottle, as
janitor gods intended.
- It also means you can fill the spray with other stuff to spray onto
dense objects directly, which might be worth noting. Especially for
stuff like Napalm.
Fixes#79261
## Why It's Good For The Game
Opens up the sandbox to allow more objects to clean microwaves + better
code.
## Changelog
🆑 Melbert
qol: Clicking on an adjacent dense object (or mob) with Spray Cleaner
will now spritz it rather than doing nothing. This means you can use
Spray Cleaner to clean bloodied windows, as the janitor gods intended.
It also means you can fill a spray bottle with Napalm, I guess.
refactor: Any cleaning object can now clean a microwave.
/🆑
* Dehardcodes microwave cleaning, allows spray cleaner to work on dense objects such as windows
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Nukie Update Followup: Returns CQC to the previous price range, Core Gear kit for newbies, hat stabilizers for everyone (#79232)
## About The Pull Request
Brings the CQC kit back down to the same price range of 14 TC (it's 1
more than before weapon kits). It feels like currently that CQC is
overpriced, even with the stealth box coming along with it, and by
comparison the energy sword and shield got a huge value increase by
combining the two. They're both melee styles and also equally difficult
play styles. It isn't really necessary to make one more expensive than
the other. Also now comes with syndicate smokes. It's a whatever change,
ops get these for free on the base.
Adds a core gear kit in the weapon category. This kit comes with a
doormag, a freedom implant, stimpack and c-4 charge. All of these are
items almost every nukie buys if they want to succeed, so let's inform
newer players by putting it RIGHT on top of the list. This isn't at any
discount, this is mostly to help inform players what items help make you
successful.
Hat stabilizers are now a part of every syndicate modsuit for FREE. It
comes built in, can't be removed, and has no complexity cost. Now
everyone can wear their wacky hats as they operate.
## Why It's Good For The Game
CQC felt like it got shafted waaay too hard with the weapon case
changes. Definitely don't believe that it is punching at the same weight
as many of the other high cost weapons. So we've dropped it down a
category. 14 TC is still a large upfront cost, even if it comes bundled
with a lot of goods.
Melbert gave me the idea of a core bundle kit to help newer players and
I was really taken with that. So I added it as part of this followup.
I want people to wear their hats goddamnit, and I didn't learn my
mistake with the tool parcels. So now everyone has hat stands on their
suits. WEAR THE SOMBRERO YOU **FUCK**.
### THIS IS NOW A THREAT.
## Changelog
🆑
balance: Operatives can once again read about the basics of CQC at a
reasonable price of 14 TC.
qol: All Syndicate MODsuits come with the potent ability to wear hats on
their helmets FOR FREE. No longer does any operative need be shamed by
their bald helmet's unhatted state when they spot the captain, in their
MODsuit, wearing a hat on their helmet. The embarrassment has resulted
in more than a few operatives prematurely detonating their implants! BUT
NO LONGER! FASHION IS YOURS!
qol: There is now a Core Gear Box, containing a few essential pieces of
gear for success as an operative. This is right at the top of the
uplink, you can't miss it! Great for those operatives just starting out,
or operatives who need all their baseline equipment NOW.
/🆑
* Nukie Update Followup: Returns CQC to the previous price range, Core Gear kit for newbies, hat stabilizers for everyone
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Spider Infestation Balance Rebalance Expansion Part 2 (#78705)
## About The Pull Request
Balances
1. Spiders now slow down equivalent to their health
2. Tarantulas can no longer put web passages or solid webs and destroy
walls outside of charge attack
3. Young spiders now cant pull objects do to being too weak and become
slower outside of webs as they should be
4. Makes pneumatic airlock seal unable to be destroyed by spiders
5. All Broodmother eggs now have a cooldown timer
Normal Eggs: 20 seconds
Abnormal Eggs: 180 Seconds
Enriched Eggs: 60 seconds
Expansions
1. Added a new abnormal egg category
2. Broodmothers can now lay abnormal eggs
3. 2 new spiders added
6. A new web type: Reflective silk screen
# Breacher



- Low damaging with High wound bonuses meant to debilitate enemies to
take ground for the nest
- Has the ability to breach areas by destroying walls with menson vision
to map out strategic breachings
- Immune to harsh environments with the ability to lay solid webs to
protect the nest environment
- Can send in warnings for the entire nest to hear
Will Help the nest get out of being closed off by small construction
attempts and fix some space breaches plus some back up by making enemies
slower and scarring them off with some bloodloss
# Tank


- Extremely low damaging build to absorb damage to hold ground for the
nest
- With the ability to lay down silk screen reflectors to protect the
nest from missile attacks
- Can heal itself at a slow rate
Will provide great support to keep the nest at bay from range attacks at
some extent and act as a damage absorber in dier situations
# Abnormal Eggs


- They can only be made once every 180 Seconds
- Hold the two new spider types
## Why It's Good For The Game
New spiders to contribute to the general spider antag team dynamic,
balances for spiders are always good making them funner to play against
and bringing up challenges on their gameplay making them act less like
murdering simple mobs and more like an actual nest trying to survive in
the station.
How?
1. **Cooldown egg laying:** broodmothers now have to be more strategic
on where they place their eggs with an average of 3 eggs per minute per
broodmother
2. **Spider slowdown on damage:** Spiders now will become slower the
longer they stay out of the nest in battle making them have to retreat
back to the nest shortening their time out murdering giving incentives
to expand the nest
3. **Spider More Brute Damage:** Gives a reason to use melee against
spiders although more dangerous it gives more reward due to the higher
damage outputs since spiders are pretty much big bugs with delicate
bodies no bones no good structural consistency equal more damage to
blunt attacks
4. **Tarantula Nerfs:** Tarantulas shouldnt be able to destroy this many
walls at this rate and be able to lay so many defensive webs I don't
know why they had this abilities but their strong enough as is
## Changelog
🆑
add: Added Abnormal Eggs
add: Added Two new spiders
del: Some Tarantula abilities
balance: Spiders speed are now connected to health
balance: Spiders now take more brute damage
balance: All egg laying now has a cooldown
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Spider Infestation Balance Rebalance Expansion Part 2
---------
Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* new space ruin, the biological research outpost (#79149)
## About The Pull Request

adds this ruin to space ruin pool
this is a shady (as NT always is) bioresearch outpost that got fucked up
by an experiment
this has like some puzzle aspect to it since you gotta find keycards and
shit and press buttons to unlock shield gates
this ends with you fighting a heart which if you defeat, destroys the
blockade that prevents you from entering the outpost vault
also you can no longer literally just cut indestructible grilles or
unanchor indestructible windows
### new puzzle elements or something idk
variant of pressure plate that you cannot remove and it sends a puzzle
signal
cooler red puzzle doors that look very foreboding or something idk
theyre for this ruin
also puzzle blockades, which are indestructible dense objects that are
destroyed if they receive a puzzle signal
and also buttons and keycard pads for puzzles
https://github.com/tgstation/tgstation/assets/70376633/c98807ec-1e7b-49c4-a757-cdbb76a1b566https://github.com/tgstation/tgstation/assets/70376633/9d5d9dd1-5868-44e6-a978-5ea57b30c298
stuff that throws electric shocks in a pattern, ignores insuls and only
knocks down, and no you cannot just run past
https://github.com/tgstation/tgstation/assets/70376633/5772917c-a963-48a4-a743-b0f610801d25
### enemies
living floor, it can only attack stuff on top of it and it attacks until
the victim is dead
it is invincible to all but a crowbar, and it cannot move, and it
remains hidden until a victim is in range
https://github.com/tgstation/tgstation/assets/70376633/aa1d54f6-b259-4e58-9d44-e393d2131acf
living flesh, it can replace your limbs with itself
the conditions for that are; the limb must have 20 or more brute, victim
must be alive and dismemberable, the limb may not be torso or head, or
the limb may not be living flesh
alternatively it can replace a missing limb
these are all checked with every attack
they have 20 hp
the limbs in question will sometimes act up, while passively draining
nutrition, arms will randomly start pulling nearby stuff, legs may step
randomly
limbs when detached, turn into mobs and reactivate AI 2 seconds later.
if the host is shocked, all living flesh limbs will detach, or if the
host dies they will also do that
https://github.com/tgstation/tgstation/assets/70376633/765cc99e-c800-4efb-aabe-d68817bbd7ae
## Why It's Good For The Game
ruin variety is cool i think
also the other things i added should be useful for other mappers for
bitrunning or whatever
also bug bad for that one fix
## Changelog
🆑
add: living floor, living flesh, and other stuff for the bioresearch
outpost ruin
add: bioresearch outpost ruin
fix: you may not defeat indestructible grilles and windows with mere
tools
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* new space ruin, the biological research outpost
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Change candy description to have some form of punctuation (#79387)
🆑
spellcheck: Changed candy description to read better
/🆑
* Change candy description to have some form of punctuation
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Light-Eaten objects can no longer emit light after being turned off and then back on (#79240)
## About The Pull Request
#67676 described a bug where PDAs can apparently emit a small amount of
light after being affected by the light eater. As it turns out, the bug
is even worse than that. It doesn't work for just PDAs, it works for
basically any light source that can be turned off and on. Even
flashlights. In the following pictures, a flashlight has been
light-eaten and then turned off and on again:

Observe how the nightmare jaunt is available, as it should be. However,
one step closer to the flashlight:

The nightmare jaunt can no longer be used, because the flashlight is
still emitting light.
This PR just fixes that behavior. Light-eaten objects will now be
totally dark again, even after being power cycled. Closes#67676.
## Why It's Good For The Game
Bugs bad.
## Changelog
🆑
fix: Light-Eaten objects can no longer emit light after being turned off
and then back on.
code: Flashlights now use light_on instead of defining their own
variable. Please report buggy behavior.
/🆑
* Light-Eaten objects can no longer emit light after being turned off and then back on
* updatepaths
---------
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Cuts the number of `apply_damage` copypaste procs from 3(.5) to 1, fixing a few bugs along the way
* Update _species.dm
* Update damage_procs.dm
* Modular adjustments
* Update mutant_species.dm
* Update mutant_species.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Sutures now heal a percentage of basic/animal max health instead of a flat amount (#79266)
## About The Pull Request
Changes the amount of HP gained when treating basic and animal mobs. For
today mobs receive treatment equal to the half treatment of the selected
object like sutures heal 5 hp.
Because of this, mobs with a large amount of HP, such as gorillas, spend
one stack of sutures to heal themselves for 1-3% of HP, while mobs with
a small amount of HP, for example 25 HP, will receive treatment equal to
20%.
With this PR, all basic/animal mobs receive the same % of HP equal to
the amount of healing for using one healing object. Like if sutures heal
10 brute damage, it will heal 10% of basic/animal mob HP.
## Why It's Good For The Game
Makes treatment for basic and animal mobs more understandable and less
resource-intensive, like if you heal basic/animal mob with 100 hp or 220
hp you will need the same number of sutures.
## Changelog
🆑
balance: Sutures now heal a percentage of basic/animal max health
instead of a flat amount.
/🆑
* Sutures now heal a percentage of basic/animal max health instead of a flat amount
---------
Co-authored-by: Xackii <120736708+Xackii@users.noreply.github.com>
* Nanotrasen basic mobs. (#78917)
## About The Pull Request
First and foremost, converts all Nanotrasen simplemobs into basic mobs.
To avoid messy and redundant code, or god forbid, making Nanotrasen mobs
a subtype of Syndicate ones, I've made Syndicate, Russian, and
Nanotrasen mobs all share a unified "Trooper" parent. This should have
no effect on their behaviors, but makes things much easier to extend
further in the future.
While most of this PR is pretty cut-and-dry, I've done a couple notable
things. For one, all types of ranged trooper will now avoid friendly
fire, instead of shooting their friends in the back. Even the Russians
have trigger discipline.
I've also created a new AI subtree that allows mobs to call for
reinforcements. I've hopefully made this easy to extend, but the
existing version works as follows:
- A mob with this subtree that gains a target that is also a mob will
call out to all mobs within 15 tiles.
- If they share a faction, mobs receiving the call will have the target
added to their retaliate list, and have a new key set targeting the
calling mob.
- If they have the correct subtree in their AI controller, called-to
mobs will then run over to help out.
Sadly, this behavior is currently used only by a few completely unused
Nanotrasen mobs, so in practice it will not yet be seen.
Finally, I've fixed a minor issue where melee Russian mobs punch people
to death despite holding a knife. They now use the proper effects for
stabbing instead of punching.
## Why It's Good For The Game
Removes 8 more simple animals from the list.
As said above, making all "trooper" type mobs share a common parent cuts
down on code reuse, ensures consistency of behavior, and makes it much
easier to add new troopers not affiliated with these groups. I expect
that I'll make pirates share this same parent next.
The new "reinforcements" behavior, though extremely powerful, opens up
exciting new opportunities in the future. There aren't many existing
behaviors that allow basic mobs to work _together_ in interesting ways,
and I think adding some enemy teamwork could be fun.
## Changelog
🆑
refactor: Hostile Nanotrasen mobs now use the basic mob framework. This
should make them a little smarter and more dangerous. Please report any
bugs.
fix: Russian mobs will now actually use those knives they're holding.
/🆑
* Nanotrasen basic mobs.
* Modular
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Partially reverts ghost announcements (#79221)
## About The Pull Request
#79139 turned out to be quite annoying, it wasn't taken into account
that these alerts can stack (ie: spiders).
Of course, I poked around the code and found some inconsistencies in the
process. For instance, there were usages of Topic for custom action
behavior which could've been consolidated. There were other instances
where jump (the default action) doesn't give a link at all, which I
think it should anyway, since the screen toast gives you this.
I've standardized it more, meaning you can use "NOTIFY_PLAY" without
writing a custom link and topic handler (for instance, MMIs)
## Why It's Good For The Game
Fixes#79198Fixes#79195
## Changelog
🆑
fix: Ghost alerts have been tuned down a bit.
/🆑
* Partially reverts ghost announcements
* Update cortical_borer_egg.dm
* Update cortical_borer_egg.dm
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Fix crafting granters runtiming for food items (#79191)
## About The Pull Request
Caused by #77465
Two global lists, food items are only found in one. This locate failed
and caused the next line to runtime error.
## Changelog
🆑 Melbert
fix: Cooking Deserts 101 grants all intended recipes
/🆑
* Fix crafting granters runtiming for food items
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds Examine hints for Railing Deconstruction (#79205)
## About The Pull Request
While railings already have contextual tips, the context requires you to
already know what tool to be holding. Would probably be helpful to know
at a glance which tool that is.

## Why It's Good For The Game
Usability? Is that the word? IDK I noticed it was missing as I kept
hitting it with a screwdriver so I'm sure I can't be the only one.
## Changelog
🆑
qol: Railings now have Examine hints for how to deconstruct them
/🆑
* Adds Examine hints for Railing Deconstruction
---------
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* [no gbp] knock heretics refuge shenanigans fix (#79157)
## About The Pull Request
may not enter refuge with the nuke disk and may not be cuffed in refuge
cuffing someone in refuge mansus grasps the person cuffing
i havent tested this because i am out of time as of time of writing so i
am PRing as draft until i test this
also claiming the issues
## Why It's Good For The Game
fixes#79133fixes#79126
## Changelog
🆑
fix: you may not enter knock path caretakers last refuge with the nuke
disk
fix: you can no longer cuff knock heretics in refuge
/🆑
* [no gbp] knock heretics refuge shenanigans fix
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Plastic sheet creates 4 tiles via the tiles menu option (#79144)
## About The Pull Request
- Fixes#79127
The argument `max_res_amount` in `/datum/stack_recipe` must be greater
than 1 for the recipe to produce multiple tiles. I made this value the
same as creating iron floor tiles from a stack of iron sheets i.e. 20
## Changelog
🆑
fix: plastic sheet produces 4 tiles via the tiles option without using
the crafting menu
/🆑
* Plastic sheet creates 4 tiles via the tiles menu option
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Pollution no longer happens when the subsystem is offline
* Removes the code for bonfire pollution that wasn't done modularly
* Modularizes bonfire pollution, makes the default bonfire not produce pollution
* Player-made campfires produce pollution
* Basic skeletons (#79206)
## About The Pull Request
Turns skeletons (the simple animal version) into basic mobs. This was
another incredibly simple conversion, since skeletons don't really do
anything but walk at you and beat you to death.
Because I thought it was funny, though, skeletons will now seek out
cartons of milk and drink them. Real milk will heal them for a
significant amount, but soymilk, being false milk, will deal them
grievous injury instead! Skeletons beware... I didn't add any other
sorts of milk due to limited ability with existing AI behaviors to
identify milk containers (they actually only look for the carton items).
Other than that, I've done some flavor adjustment for skeletons' attacks
- their effects and sounds will now suit the weapon they're actually
holding - for example, skeleton templars now actually use their swords
instead of slashing you with their horrible fingers. Along with this I
gave the basic skeletons a normal slashing sound, instead of the weird,
impactless hallucination sound they used to use for some reason. I never
liked that sound.
Finally, I've reflavored the spear-wielding skeleton mobs to "undead
settlers", following the naming of the corpses dropped by snow legions
as of #76898, rather than being named after an offensive term for Inuit
people. These skeletons do, after all, appear in settlements on alien
worlds.
To enable the flavor of milk drinking, I expanded the `basic_eating`
component to allow drinking rather than eating flavor, with a different
sound and its own set of verbs. This deletes whatever they drink from,
but c'est la vie.
## Why It's Good For The Game
Ticks 6 more entries off the simple animal freeze. While skeletons are
still extremely simple, being largely-identical mobs that only exist to
beat you to death, being basic mobs should make them slightly better at
this job. Also, again, I think it's really funny that you can distract
skeleton mobs with milk, or even hurt them.
## Changelog
🆑
refactor: Hostile skeleton NPCs now use the basic mob framework. They're
a little smarter, and they also have a slightly improved set of attack
effects and sounds. They love to drink milk, but will be harmed greatly
if any heartless spaceman tricks them into drinking soymilk instead.
Please report any bugs.
/🆑
* Basic skeletons
* updatepaths
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds a Syndicate Monkey Agent beacon uplink item (#79012)
## About The Pull Request
Adds a Syndicate Monkey Agent beacon uplink item. It spawns a dapper
monkey that must follow your orders.
Added a monkey gun case to the uplink, which contains monkey guns!
Though they aren't very powerful.
Added a more modularlike subtype for antagonist spawners to reduce
future hardcoding.
Gave the syndicate turtleneck a monkey sprite, from SS14!
## Why It's Good For The Game
I want to see the clown driving security insane with 2-3 monkeys and an
incredible amount of pranking. Or an assistant killing everyone with his
monkey friends while wearing a monkey suit. Or a geneticist sending out
mutated monkeys to kill people. Or a scientist equipping his monkeys
with bombs or xenobiology equipment and sending them out to wreak havoc.
6 TC is only enough for two monkeys, but you can get a third if you
finish any kind of objective.
> Added a monkey gun case to the uplink, which contains monkey guns!
Though they aren't very powerful.
We can't have the monkey mafia without guns, come on. The guns are weak
and only usable by monkeys. Additionally, they're restricted to
entertainment only.
Credit to SS14 for the monky turtleneck sprite.
## Changelog
🆑
add: Adds a Syndicate Monkey Agent beacon uplink item. It spawns a
dapper monkey that must follow your orders.
add: Added a monkey gun case to the uplink, which contains monkey guns!
Though they aren't very powerful.
refactor: Added a more modularlike subtype for antagonist spawners to
reduce future hardcoding.
sprite: Gave the syndicate turtleneck a monkey sprite, from SS14!
/🆑
---------
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Adds a Syndicate Monkey Agent beacon uplink item
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Completely deprecates reagents in protolathe/circuit imprinter/techfab designs (#78939)
## About The Pull Request
A long time ago, it was common for designs to cost reagents in addition
to normal materials. Every circuit board used to require sulfuric acid,
for example. However, these designs have slowly been whittled away, and
only two remain: the death syphon PKA modkit, which costs blood, and
paint remover in the service lathe, which costs acetone. Although these
two designs still use the old system, it is very outdated, and it shows.
TGUI doesn't take reagent costs into account at all. Reagent costs
aren't displayed on mouse over like material costs, and the design won't
be greyed out if there necessary reagents aren't present. If you try and
fail to print one of the two designs, the protolathe will tell you that
reagents are missing, but it won't say what reagents. In fact, there is
not way to find out what reagents are required without code diving.
## Why It's Good For The Game
In light of how outdated and unsupported this system is, I think it
makes sense to deprecate it almost entirely.* Now, protolathes, circuit
imprinters and techfabs will no longer take reagent costs into account
at all, even if a design does define reagent costs. The machines also no
longer need beakers to be built, and reagents can't be transferred into
them. The two remaining designs that did use reagent costs now don't,
and I've updated the designs unit test to fail if any non-limbgrower
design does set any reagent costs.
*Limb growers are the exception, as they're fully functional and work
fine.
## Changelog
🆑
del: Protolathe/circuit imprinter/techfab designs costing reagents is
now totally deprecated.
/🆑
* Completely deprecates reagents in protolathe/circuit imprinter/techfab designs
* medigun reagent removal
---------
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Intercom Resprite and Tweaks (#78366)
## About The Pull Request
Changes the sprites of the Station Intercom, Command Intercom, and
Prison Intercom to the next ones:



Now Station Intercom and Command Intercom descriptions are changed to
tell more about their real functionality.
Command Intercom now has High-Volume settings like heads headsets.
There is now a memo with frequencies of every channel on the station,
the memo is placed near the Command Intercom and in the
Telecommunications Room.
## Why It's Good For The Game
Intercoms are part of the "old wall-mount" sprites that were never
touched, besides the brief addition of overlays.
Replacing them to design more familiar of other wall-mounts will make it
less ancient.
Making the Command Intercom and Prison Intercom look unique ensures
players (especially new ones) can distinguish them by just glancing
without needing to examine them.
The Command Intercom having a High-Volume setting makes it even more
unique as an item that is only met in one room at the station, also
makes any Command orders given through an intercom (during
Telecomunnications outages) more noticeable.
The description change gives more useful information about Station
Intercom and Command Intercom. Now players (especially new ones) can
understand that Station Intercoms are usable during telecommunications
outages, and Command Intercoms can be set to any frequency.
The memo will help players (especially new ones) understand what numbers
they should input to access certain channels using Command Intercom, as
right now, the only way to find out the frequencies is through wiki or
directly checking servers.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far-reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
🆑
qol: The Command intercom now has a High-Volume setting like command
headsets
qol: A memo telling frequencies of station radio channels are now
present near the Command intercom and T-Comms room
image: Station, Command, and Prison intercoms have received new sprites
spellcheck: Station and Command intercom descriptions have been changed
to tell about their functionality
/🆑
* Intercom Resprite and Tweaks
* Update intercom.dmi
---------
Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* gah muhfuckin dam!!
* boutta go eat me some chicken parmesan
* gates and fence gates
* things that dont exist anymore
* updates some of the other stuff
* hot and steamy
* oops
* those particles shoulda ctually work now
* fixes various things
* makes the fence gate actually work
* right
* fixes some stuff
* are u a grass?
* this map is cool as fuck
* wow those forge structures are crusty ahh hell
* lets get lighting that looks cooler
* wall mounted torches for lighting
* i have plans that I cannot share with you
* ohj yea,,
* i think the map might be ready
* map template, removes the old map
* right, component lists
* oops 2
* may i be confused forever
* lets do the automapper solution
* fixes fences
* makes the posts more resistant to stray plasma cutter bolts
* linta
* puts some climbing hooks around
* everything everywhere all at once
* reverts the forge structure change
* Update modular_skyrat/modules/primitive_structures/code/storage_structures.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_structures/code/storage_structures.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_structures/code/storage_structures.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_cooking_additions/code/stone_oven.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_cooking_additions/code/stone_oven.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/primitive_cooking_additions/code/stone_stove.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* makes big doors reset their layer when not facing east
* im so mad
* makes the vendor actually work for cats again
* that's not suppsoed to happen
* fixes test failure
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Adds a subtle ghost poll (#79105)
## About The Pull Request
This makes a new ghost poll system which doesn't give TGUI popups -
instead, users are prompted to follow the POI and one of the orbiters is
chosen. The old system remains in place, so you can still prompt if you
want to.
This gives two things:
1. A deadchat notification:

2. A screen alert:

## Why It's Good For The Game
As stated in #76507, popups are pretty annoying. This is halfway between
a screen alert with no time limit and an event with more important
pings. This is better because:
1. Less popup fatigue
2. You can SEE how many you're competing with
4. DRY
## Changelog
🆑
add: Adds a subtle ghost poll. This pings in dead chat and gives a
screen alert, but no TGUI popup. Orbit the point of interest to be
selected for the role.
refactor: A number of ghost spawns now feature this alert. Write an
issue report if anything breaks.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Adds a subtle ghost poll
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>