* Refactors Crystal Warp Theme datum to use Dimensional Theme datum (#80661)
## About The Pull Request
`/datum/crystal_warp_theme` and `/datum/dimension_theme` both do very
similar, if not identical behaviors, so we can combine them pretty
painlessly.
## Why It's Good For The Game
This gives the crystal more options for themes to pick from, and the
dimensional anomaly more wacky themes to pick from.
## Changelog
🆑 Melbert
refactor: Refactored the area transformation colossus crystal effect to
use the same system dimensional anomalies use. That means the colossus
crystal now has access to some dimensional themes (bamboo, plasma,
glass) and the dimensional anomaly now has access to some colossus
themes (jungle, alien).
/🆑
* Refactors Crystal Warp Theme datum to use Dimensional Theme datum
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Dimensional anomaly converting airlocks preserves old name (#80654)
## Why It's Good For The Game
the name of an airlock indicates what area it is, also generic names
like "gold airlock" look dull
Fixes https://github.com/tgstation/tgstation/issues/80655
## Changelog
🆑
fix: Dimensional anomlies converting airlocks preserves the old name
/🆑
* Dimensional anomaly converting airlocks preserves old name
---------
Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
* Fixes being able to fish up qdeleted spawners (#80646)
## About The Pull Request
Fixes https://github.com/NovaSector/NovaSector/issues/152
This is mostly a downstream issue, I think, but should a spawner ever
get added to the fish tables here this bug will be present.
Basically spawners, when created, do their item spawning behavior on the
src loc and then immediately qdel themselves.
If you try to forceMove() the spawners out of nullspace, like what was
happening with fishing, you'd end up with an unmovable broken item that
cannot be easily admin deleted.
This PR also adds a stack_trace when you forceMove() a qdeleted spawner,
because this is not the first time I've seen this issue come up. It
doesn't stop it from happening, though, because it's easier to visually
see the bug that way. This just provides some useful feedback as to why
the bug is happening should you check the debug logs.
## Why It's Good For The Game
Fixes a bug
## Changelog
🆑
fix: fishing up a spawner will now give you the spawned item instead of
a broken, undeletable spawner object
code: adds a warning to the stack trace when something tries to
forceMove() a qdeleted spawner
/🆑
* Fixes being able to fish up qdeleted spawners
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Holiday Supermatter (#80254)
## About The Pull Request
Adds some festive season cheer to the SM. Santa hat not included.

## Changelog
🆑 LT3, Majkl-J
image: SM now has holiday lights
image: You can now put a santa hat on the SM
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Holiday Supermatter
* Update code/modules/power/supermatter/supermatter.dm
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* The maintenance crate spawning crate is now a spawner (#80083)
## About The Pull Request
`/obj/structure/closet/crate/maint` was a type of crate that spawned a
completely different crate, and then deleted itself. I have decided to
swap this out for an actual spawning effect.
I have also did some subtypery to remove some duplicate code that
handled randomly opening the spawned closet/crate (through I am not that
satisfied with
`/obj/effect/spawner/random/structure/closet_empty/crate/with_loot` as a
sensible typepath name, I would like to ask for suggestions). I also
removed a loot define, because it was no longer needed as its contents
were used on a single page.
## Why It's Good For The Game
Things that act like spawners should be spawners.
Maybe this fixes the CI issue on northstar where a mousetrap box gets
deleted before it initializes during create and destroy? It was placed
above a spawner that spawned one of these self deleting crates. I am
unsure, I could not replicate this issue during testing.
## Changelog
Nothing player facing.
* The maintenance crate spawning crate is now a spawner
* UpdatePaths
* Update Blueshift.dmm
---------
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis (#80032)
## About The Pull Request
### Cogitandi Fidis
Creates a holy violin that gives an analysis of songs played on it. This
lets you check how long the song is for final effects, to make sure they
trigger without the hassle of trying a rite with a song until you get
one that works. 20 Favor, looks neat too!
### Portable Song Tuning
Rite to empower an instrument with the ability to invoke specifically
song tuning rites, 5 charges before you need to go back to a proper
altar. Helps a chaplain stay on the move, since songs are interruptable
and sometimes an altar can be incredibly far. 10 Favor for 5 charges.
### Illuminating Solo

New free invocation that lets you light up the way with your music! The
finishing effect applies a weaker glow to all listeners for a minute.
### Other Misc Changes
The threshold for getting a final effect on a song is now lower, 220 ->
170. As a reminder, this threshold is lines * tempo. I think the
threshold was simply too high
## Why It's Good For The Game
Changes were made from
https://tgstation13.org/phpBB/viewtopic.php?f=10&t=35381 statistics and
feedback about sects. I think, overall, Festival Sect is in a very good
place and doesn't need a whole lot but a few rites that help with a
quality of life would really cut down on the amount of time a chappy is
spending doing nothing but running allllll the way back to the chapel to
load up some new songs
## Changelog
🆑
add: Festival Sect has 3 new rites: Cogitandi Fidis, Portable Song
Tuning, and Illuminating Solo.
balance: lowers threshold for triggering a final effect. Consult your
Cogitandi Fidis for more information
/🆑
* Festival Sect Expansion: New Tunes, New Rites, Cogitandi Fidis
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things (#79785)
## About The Pull Request
Fixes#79764
I was going to tackle this issue by slamming `TRAIT_NO_SLIP_ALL` on
Atrocinator users and calling it a day, but like, that didn't feel
proper.
So I thought hey, we could just give them the flying movetype, even
though they technically aren't flying it means they're unaffected by
things that flying would make you unaffected by.
Nope, this means the mob technically "negates gravity", so no falling
and no feetsteps.
Let's try floating - this give us feetsteps but no falling upwards.
So instead of going back to square one, with `TRAIT_NO_SLIP_ALL`, I
decided to go for the more complex route of just adding a movetype.
Hence, move type `UPSIDE_DOWN`. This covers situations where a mob would
be "floating" above the ground, but still walking. ...Negative gravity.
This means overall the Atrociator acts more as you'd expect - you don't
slip on ice, you don't trigger bear traps or mouse traps, you can walk
over railings, unaffected by conveyor belts, etc.
## Why It's Good For The Game
Makes the Atrocinator a lot more consistent with how you'd expect for it
to work.
Admittedly it is a bit niche use of movetypes, but it can possibly be
expanded to more things in the future, who knows? I applied it to mobs
on meat spikes (even though they don't move), just for proof of concept.
## Changelog
🆑 Melbert
fix: Atrocinating mobs will now behave more as you'd expect. Meaning
they don't slip on wet patches, can't trigger bear traps / landmines /
mouse traps, ignore conveyors, and can walk over tables and railings.
fix: Floating mobs are unaffected by conveyor belts, acid (on the
ground), glass tables
fix: Floating mobs won't squish stuff like roaches anymore
fix: Fixes bear traps triggering on floating / flying mobs
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Adds `UPSIDE_DOWN` movetype for negative gravity / makes Atrocinator affected by less things
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Splits placeontop proc (#79702)
## About The Pull Request
I find the proc hard to read honestly. There's no reason we can't split
this into two functions - the secondary functionality is used only once,
in reader.dmm.
## Why It's Good For The Game
Code improvement
Glorious snake case
## Changelog
N/A nothing player facing
---------
Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com>
* Splits placeontop proc
* Update brass_spreader.dm
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: san7890 <34697715+san7890@ users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Adds wibbles to certain anomalous entities (#79549)
## About The Pull Request
Adds wibble animation to portals, some anomalies, and bluespace rifts.
https://github.com/tgstation/tgstation/assets/51863163/9355dc53-590e-4558-82a3-15145829ce16
## Why It's Good For The Game
It looks kinda cool.
Helps cement these as anomalous, wacky things that don't necessarily fit
in our plane of existence.
## Changelog
🆑 Melbert
add: Anomalies, portals, and bluespace rifts will now wibble a bit.
/🆑
* Adds wibbles to certain anomalous entities
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@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>
* 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>
* [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>
* 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>
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024)
## About The Pull Request
- Refactored `bullet_act`. Adds `should_call_parent` and refactors
associated children to support that.
- Fixes silicons sparking off when hit by disabler fire.
- Desnowflakes firing range target integrity and cleans up its
bullet-hole code a bit.
- Cleans up changeling tentacle code a fair bit and fixes it not taking
off throw mode if you fail to catch something.
- The Sleeping Carp deflection is now signalized
- Nightmare projectile dodging is now signalized and sourced from the
Nightmare's brain rather than species
- Refactored how cardboard cutouts get knocked over to be less
snowflaked / use integrity
- Also adds projectile `on_hit` `should_call_parent` and cleans up a bit
of that, particularly their arguments.
- On hit arguments were passed wrong this entire time, it's a good thing
nothing relied on that.
## Why It's Good For The Game
This is cringe.
1863eb2cd8/code/modules/mob/living/carbon/human/_species.dm (L1430-L1442)
Bullets should overall act more consistent across mob types and objects.
## Changelog
🆑 Melbert
fix: Silicons don't spark when shot by disablers
fix: Changelings who fail to catch something with a tencacle will have
throw mode disabled automatically
fix: Fixes occasions where you can reflect with Sleeping Carp when you
shouldn't be able to
fix: Fixes some projectiles causing like 20x less eye blur than they
should be
refactor: Refactored bullet-mob interactions
refactor: Nightmare "shadow dodge" projectile ability is now sourced
from their brain
/🆑
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc
* Modular changes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Adds pathmaps, refactors pathfinding a bit (#78684)
## About The Pull Request
Implements /datum/pathfind/sssp, which generates /datum/path_map
/datum/path_maps allow us to very efficently generate paths to any turf
they contain from their central point.
We're effectively running the single source shortest paths algorithm.
We expand from the center turf, adding turfs as they're found, and then
processing them in order of addition.
As we go, we remember what turf "found" us first. Reversing this chain
gives us the shortest possible path from the center turf to any turf in
its range (or the inverse).
This isn't all that useful on its own, outside of a few niche cases
(Like if we wanted to get the farthest reachable turf from the center)
but if we could reuse the map more then once, we'd be able to swarm
to/from a point very easily.
Reuse is a bit troublesome, reqiures a timeout system and a way to
compare different movables trying to get paths.
I've implemented it tho. I've refactored CanAStarPass to take a datum,
/datum/can_pass_info. This is built from a movable and a list of access,
and copies all the properties that would impact pathfinding over onto
itself.
There is one case where we don't do this, pathing over openspace
requires checking if we'd fall through the openspace, and the proc for
that takes an atom.
So instead we use the weakref to the owner that we hold onto, and hold
copies of all the values that would impact the check on the datum.
When someone requests a swarmed path their pass info is compared with
the pass info of all other path_maps centered on their target turf. If
it matches and their requested timeout isn't too short, we just reuse
the map.
Timeout is a tricky thing because the longer a map exists the more out
of date it gets.
I've added a few age defines that let you modulate your level of risk
here. We default to only allowing maps that are currently
being generated, or finished generating in our tick.
Hopefully this prevents falling into trouble, but consumers will need to
allow "failed" movements.
As a part of this datumized pass info, I've refactored pathfinding to
use access lists, rather then id cards directly. This also avoids some
dumbass harddel oppertunities, and prevents an idcard from changing mid
path.
Did a few things to the zPass procs, they took args that they did NOT
need, and I thought it'd be better to yeet em.
If you'd all like I could undo the caching/can_pass_info stuff if you'd
all like. I think it's useful generally because it avoids stuff changing
mid pathfind attempt, but if it's too clunky I could nuke it.
Oh also I added optional args to jps that constricts how it handles
diagonals. I've used this to fix bot paths.
## Why It's Good For The Game
Much of this is redundant currently. I'm adding it because it could have
saved hugglebippers, and because I get the feeling it'll be useful for
"grouping" mobs like bees and such.
We're doing more basic mob work currently and I want to provide extra
tools for that work.
https://github.com/tgstation/tgstation/assets/58055496/66aca1f9-c6e7-4173-9c38-c40516d6d853
## Changelog
🆑
add: Adds swarmed pathfinding, trading accuracy for potential
optimization of used correctly
fix: Bots will no longer take diagonal paths, preventing weirdo looking
path visuals
refactor: Refactored bits of pathfinding code, hopefully easier to add
new pathfinding strategies now
/🆑
* Adds pathmaps, refactors pathfinding a bit
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Invisibility refactor (#78908)
This adds a tracker for sources of invisibility and a priority system. I
needed this for another thing so I'm doing this first since it touches a
lot of code. As for the bugs fixed in the changelog, it's only what I
noticed while going through everything and there's likely a few more
things fixed with this. This should be testmerged for a while, I'll
bring this out of draft when it feels safe.
🆑
admin: Invisimin can now be used on mobs that are already invisible,
whether through temporary or permanent effects.
fix: Monkeyize/Humanize mob transformations no longer permanently reveal
invisible mobs if they had effects making them invisible otherwise.
fix: Objects with the undertile element that have been made invisible
through other means are no longer revealed by being uncovered.
/🆑
* Invisibility refactor
---------
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Flesh Spiders Regenerate + QoL (#78704)
## About The Pull Request
Replaces the Healing Touch component on Changeling-spawned Flesh Spiders
with the Regenerator component, as the comment helpfully suggests.
Flesh Spiders can no longer touch themselves to heal, instead they
automatically begin regenerating their health if they go four seconds
without taking damage. It takes 6 seconds to fully regenerate, so 10
seconds to fully heal from the edge of death (less if you're not that
injured).

Also I changed the sprite for flesh spider eggs to a different one we
already had rather than regular spider eggs tinted red, just because I
felt like it.
Would be cool to give the spiders their own sprite some time, but that's
for another PR.

_Additionally_ the flavour text for flesh spiders was kind of messed up
by being shoved into the objectives box and claiming that it was a
directive from a spider queen you don't have, so I gave them their own
slightly different antag datum to compensate.
It also actually mentions how you heal yourself, which previously was
down to trial and error or codediving.
In the course of doing this I decided to just... move flesh spiders to
their own type path. It _sort of_ made sense for them to be part of the
giant spider typepath, but they keep being modified by changes targetted
at "balancing the Giant Spiders antagonist" which this mob isn't related
to and doesn't have any reason to follow. The fact that a mob has
similar stats to another one isn't automatically a reason to share a
typepath, and now that I have looked a little at this mob I'm sort of
interested in branching it further away from "it's a spider mob but
spawned a different way" in the future.
Finally, this spider egg cluster and the midwife one would prompt ghosts
with a radial menu with a single option on it... that's a bit pointless,
so we'll bypass that menu if there is only one possible outcome.
## Why It's Good For The Game
Currently Flesh Spiders heal by clicking on themselves and standing
still for two seconds, restoring 50% of their HP. This means they can
fully regenerate over 4 seconds unless you stun them, and with 90 HP
you're not _that_ likely to kill one during the channel time.
This just feels like an odd way for the creature to operate,
regenerating instead gives it a hit-and-run strategy and adds more use
to their webs (maybe we should give them meatier or bloody webs at some
point? Might be cool).
Also clicking yourself to heal is just unintuitive and I suspect several
players just didn't realise they could do it in the first place.
## Changelog
🆑
balance: Flesh Spiders heal automatically over time if they go a short
time without taking damage, instead of healing large chunks by clicking
themselves and waiting two seconds.
qol: Spider egg clusters which only hatch into one kind of spider don't
ask you to select that one type from a radial menu with one option on
it.
qol: As a Flesh Spider, the game now tells you how you can heal
yourself.
/🆑
* Flesh Spiders Regenerate + QoL
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Spider Type Check Fix (#78817)
## About The Pull Request
Fixes bug, I am running out of gbp plz merge
## Why It's Good For The Game
Fixes#78802
## Changelog
🆑
fix: Spider types get properly checked again.
/🆑
* Spider Type Check Fix
---------
Co-authored-by: Comxy <tijntensen@gmail.com>
* Adds a passive scan to the Active Sonar module (#78734)
## About The Pull Request
Adds a passive, radial scan to the Active Sonar module.
This will scan a 1/8th slice around the player for any creatures, and
place a much smaller marker over them for the player to see.
These small markers do not update their location when the scanned
creature moves, unlike the normal markers.
Activating the module initiates the normal full scan, which scans the
entire radius at once rather than just a slice. Doing so will put _both_
scans in cooldown.
https://github.com/tgstation/tgstation/assets/66052067/96226090-fa32-42d5-99f4-a8dbdc36cf98
## Why It's Good For The Game
Honestly I still felt the Active Sonar was a little weak even after I
tried to buff it a little.
I wanted to initially find a way to make the large scan effects smoothly
move with whoever you're following, but since I couldn't manage to
figure that out instead I went with a recommendation from ninjanomnom to
make a radial scan.
I think this is far more interesting either way
## Changelog
🆑 Wallem
add: Buffs the Active Sonar module with a radial scan, and makes the
power costs more in-line with other modules.
/🆑
* Adds a passive scan to the Active Sonar module
---------
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Removes all spawn locations of the awakened plush except the bus ruin (#78559)
It's supposed to be a coderbus easter egg, stop putting it elsewhere. I
want it to stay rare enough that it confuses people when it makes it to
the station.
The secure closet had it on the loot table and due to how that's coded
it has to have something replace the slot (or rework the loot spawning
code there) so I put a live bomb in the slot instead.
🆑 ninjanomnom
del: An easter egg plushie that was spawning where it shouldn't has been
brought back home.
add: The secure closet can now spawn live gibtonite, enjoy your free
bomb.
/🆑
* Removes all spawn locations of the awakened plush except the bus ruin
---------
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
* Feature: bitrunner, a new supply role (READY)
* Delete bepis.dm
* Conflicts
* Update dynamic_rulesets_midround.dm
* Fixing this invalid icon file path
It was trying to use the aesthetics one
* Bepis is dead
* New digi sprites courtesy of CandleJaxx!!
Now in the correct branch!
* Fixing merge conflict
* bitrunning hotfixes [NO GBP]
* Modular health adjustments
* Revert "Modular health adjustments"
This reverts commit 0ff3c48d398f6c1aac51cdf8fecaf869491bbc86.
* Modular health adjustments
Only this one should be necessary
* The screenshot test
* Bitrunner den for voidraptor (FOR #23865) (#23891)
* no shower in sight
* lets bitrunners actually get to their room and spawn there
* New digi sprites courtesy of CandleJaxx!!
* Revert "New digi sprites courtesy of CandleJaxx!!"
This reverts commit eea9f47de256dd407c78450bc8f2a09b814f93e9.
---------
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Removes bitrunning unit tests (#78607)
## About The Pull Request
Removes the fraction of unit tests I thought would be safe.
Not thrilled that I have to exclude ALL unit tests now, but hey.
The issue is that atmos attempts to process on a turf which hasn't
initialized yet.
## Why It's Good For The Game
Other PRs can pass checks now
## Changelog
N/A
* Update birdshot.dmm
* Tweaks the BEPIS category of the bitrunning order console
* Adds back the flashdark that we had skyrat edited in
* Update tgstation.dme
* Fixes Voidraptor bitrunning den not being connected to the powergrid
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. (#78310)
## About The Pull Request
Zap strength is now measured in joules. Scales everything to account for
this.
NT CIMS will now display the zap power transmission in watts, instead of
a modifier. This will allow you to actually see how much power the
supermatter is generating accurately, without knowledge of hidden
multipliers. NT CIMs will also show the internal energy gain from heat
in eV/K/s, so you can easily figure out how internal energy gain works,
and how much energy gain it actually gives. The internal energy
measurement will also adjust its prefix. Internal energy is now a
measure of internal energy, rather than internal energy density,
removing the "/cm^3".
Here is what it looked like:

This image was created on an earlier commit where the numbers were wrong
due to a hidden multiplier that got removed later, so keep that in mind.
Also fixes inactive supermatters unnecessarily scaling delta time. The
high energy (>5GeV) additional zaps now also scale with delta time.
The code in this PR is absolute garbage trash and there are some major
issues, so I'm drafting this for now.
## Why It's Good For The Game
Makes it more clear what the factors add, and also how much power the SM
is releasing. Zap strength being measured in joules will simplify a lot
of things, making power balance more clear rather than guessimating.
Adjusting the prefix for internal energy is just the natural thing to
do. The per cubic centimeter part of internal energy would imply it is
energy density, however it is functionally not. It would probably
confuse people thinking the volume of the turf or the size of the
supermatter actually matters for what the internal energy does, when it
does not (except for gas absorption I guess, which changes heating/mol
requirements, but nothing else), so I am removing that part.
## Changelog
🆑
qol: NT CIMs shows how much power the supermatter is releasing.
qol: NT CIMs internal energy will adjust its prefix.
qol: Energy displays (such as multitooling grid) will use the full range
of SI prefixes available, up to the peta prefix if you somehow managed
to reach that.
del: Removes the per cubic centimeter part of internal energy.
fix: Fix unnecessary delta time scaling on inactive supermatters.
fix: Fix high energy zaps not scaling with delta time.
fix: Fixes grounding rods lying about potential power you can generate.
code: Convert supermatter_zap() and tesla_zap() zap_str argument unit to
be in joules, and scales everything that uses that argument.
/🆑
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* adds crushed can, jelly doughnut, and shipping container random spawners (#78444)
## About The Pull Request
i got bored so i made some new spawners, mainly for mappers but maybe an
admin will use them too. pics here:

firstly, this adds crushed can spawners, for if you want a random
crushed can sprite in your map, and don't really care which it is.
if you _do_ care, however - you can set the var/random_icon field on one
of these to 0, in your copy of strongdmm. then just change the icon
state to whatever specific can design you'd like it to be (ie:
"wellcheers")
here you can see a few of them in action

secondly, this adds doughnut, jelly doughnut, and slime jelly doughnut
spawners - pictured below
these use a weighted list based on flavor - more down to earth flavors
are more common, while more interesting and unique flavors like bungo
and blumpkin are a bit rarer.

thirdly, this adds a shipping container spawner. this one uses a
weighted list so the super obvious syndi corps are rare, less obvious
ones are less rare, and regular corporate ones are common. here you can
see a few.

## Why It's Good For The Game
more flexibility for mappers, more dynamic spawns... what's not to love?
## Changelog
🆑
not player facing
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* adds crushed can, jelly doughnut, and shipping container random spawners
---------
Co-authored-by: Lamb <110322848+CoiledLamb@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Basic Mob Brimdemon (#78424)
## About The Pull Request
Fixes#71330
The brimdemon was basically already perfect (well, it has a novel means
of attacking) so I didn't get too fancy with this one, it's _largely_
just a straightforward conversion.
Following this change it's a little slower to back off, but better at
lining up with people in order to blast them. Additionally, its beam is
now a mob ability so you can give it to other mobs if you so desire.
Because I can't help doing a _little_ tinkering, Brimdemons now explode
2.5 seconds after they die, after a brief warning animation.
## Why It's Good For The Game
Simple mobs must die
## Changelog
🆑
add: Brimdemon corpses release an explosion shortly after death, just to
keep you on your toes.
refactor: Brimdemons now use the basic mob framework which (should)
improve their pathfinding somewhat. Please bug report any unusual
behaviour.
admin: The brimdemon's beam ability can be given to any mob, for your
Binding of Isaac event
/🆑
* Basic Mob Brimdemon
* Modular
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* seedling basic mobs (#78224)
## About The Pull Request
this is a mob that was removed from the game since years ago. this pr
refactors them and readds them to the game. seedlings now can have
different colored petals!

to obtain this monster, botany can now grow them out of 'seedling' seeds
that they can find in the exotic seeds crate. this mob loves to help all
plants and when its grown out of the seed, it will help the botanists
look after their plants. it can water plants (if it finds a bucket),
remove weeds and remove dead plants. they will also use their solarbeam
ability to provide small healing to damaged plants. it will try to
refill its bucket with water if there is a water source near by. it will
also follow the orders of whoever harvested it.

traitors can buy a seed from the uplink that grows an evil version of
the seedlings, they can command them to attack people and use abilities
and to cause chaos on the station.
## Why It's Good For The Game
refacotrs the seedlings into basic mobs
## Changelog
🆑
refactor: seedlings have been refactored into basic mobs please report
any bugs
add: seedlings now can have different colored petals and can look after
botanys plants
add: seedlings are re-added to the game! they grow out of seedling seeds
obtainable from exotic seed crates or traitor uplink
/🆑
* seedling basic mobs
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Nuclear Operative Jump Jets (#78088)
## About The Pull Request
This PR gives operative MODsuits access to "jump jets".
This is an activated module (starts pinned) with a 30 second cooldown
which removes your personal gravity for 5 seconds and (if possible)
pushes you upwards by one z level. In combination with your regular
jetpack this allows you to fly over gaps, and (most importantly) out of
pits such as you may inadvertently find yourself wandering into on
Icebox.
I have a few other changes I want to make specifically targetted at the
experience of Icebox station destruction causing people to fall several
z levels and get trapped, but this is the first one.
You have to stand still for 1 second to activate the jump jet. This is
because jetpack movement without gravity is actually usually faster than
an operative will walk, and I don't want them to just toggle it as a
sprint button while running around. If people find other tactical uses
for this though I think that's cool.
This module currently isn't available to crew on the tech web, although
maybe someone could add it later if they wanted to. It's not quite so
useful if you don't _also_ have a jetpack though.
I bumped the available complexity of the suits I attached it to up by
the complexity cost of this module so it's not taking up previously
available space.
## Why It's Good For The Game
It's funny when the whole ops team falls in a hole after an explosion
they caused and gets stuck in there fighting Snow Legions but they
should probably have some method for dealing with that.
It also lets them pop back up from the tram hole, a risky proposition
because any flying mob hit by the tram dies almost instantly.
## Changelog
🆑
add: Operative MODsuits now have an attached "jump jet" which sends you
upwards and allows you to use your jetpack under gravity for a few
seconds, perfect for navigating the pits and valleys of Icebox Station.
/🆑
* Nuclear Operative Jump Jets
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Desouls Hivelord (#78213)
## About The Pull Request

Replaces the sprite of the hivelord with a new one, in my continuing
quest to annihilate the old asteroid mob sprites.
A (never completed) asteroid mob resprite was actually my first PR, this
one is my 200th.
I am also planning on fucking with basic mob versions of these mobs some
time but the sprites can be atomised out.
In addition to replacing the old-ass MSPaint sprites, this PR also adds
a short death animation effect to the hivelord brood (from hivelords or
legions) which looks nicer than them just vanishing instantly upon
death.
Look at this video for an example of the animation:
https://www.youtube.com/watch?v=cKaskN5-y2A
## Why It's Good For The Game
Looks nicer.
## Changelog
🆑
image: Hivelords have a new sprite.
image: Hivelord and Legion brood have a death animation.
/🆑
* Desouls Hivelord
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>