## About The Pull Request
[Fixes static lights not
moving](ffef43c05a)
Worked fine when the owner moved, but if the owner was inside something
else, it would try and trigger an update on the PARENT's lights, which
are obviously not us.
[Renames MOVABLE_LIGHT and STATIC_LIGHT to better describe what they
do](de73a63bd4)
People keep trying to change the lighting system of lamps and it makes
me mad.
I choose OVERLAY_LIGHT and COMPLEX_LIGHT here, I couldn't figure out a
better name for turf matrix lighting. Suggestions welcome
## Why It's Good For The Game
Closes#80005
Hopefully improves understanding of lighting at a glance
## Changelog
🆑
fix: Fixes fancy lights not updating their source location when picked
up and moved
/🆑
## About The Pull Request
This pull request does a few things:
First up, the moon smile now does a 2 second knockdown and all its
effects have been granted an increase of a few seconds making it more
powerful.
Second up, the mark now does a bit of sanity damage on detonation. Not a
lot but its helpful before you get the blade knowledge.
Lastly the ascension has been tweaked so that lunatics now get an
antagonist hud and are able to see who is a lunatic and who isnt. The
heretic has received the same treatment and can now see who is and isnt
a lunatic. Being within the heretics line of sight whilst its ascended
now puts an effect on the tile you are on because people were
complaining about it not being clear enough.
## Why It's Good For The Game
Path of moon struggled a LOT in the early game compared to every other
path and I think that made it very weak, this buff should put it more in
line with other paths whilst not over throwing the balance completely.
The ascension changes are purely for qol as the previous system made it
very hard to tell who is and isn't a lunatic and it was consistent
feedback that I received every time a moon heretic ascended.
## Changelog
🆑
balance: Smile of the moon's effects now last for longer and have a
longer minimum active time
balance: Mark of moon detonations now do sanity damage
qol: Ascended moon heretics and lunatics are now able to see who is and
isn't a lunatic.
qol: People inside the ascended moon heretics sanity draining aura now
gain an effect under their tile.
/🆑
## About The Pull Request
- Freedom Implant will un-knot knotted shoes.
- Biodegrade will melt knotted shoes.
## Why It's Good For The Game
Just a niche interaction idea I had. Knotted shoes are, obviously,
obstructing your movement so these two tools that aim to un-obstruct
your movement should do something about it, right?
Also it would be funny to see a Ling melt their own shoes. Biodegrade
prioritizes handcuffs over anything else so it shouldn't be of great
concern.
## Changelog
🆑 Melbert
add: Freedom Implants and Biodegrade can you free you of the shackles of
knotted shoes.
/🆑
## About The Pull Request
Adds a signal when someone buys an item from the uplink and removes
single-letter vars from the ``spawn_item`` proc, and adds/standardizes
add/removing of telecrystals from uplinks (and admin setting how much TC
they have) to ensure the UI always has the right amount of telecrystals
displayed in it.
## Why It's Good For The Game
There are reasons why someone would want to hook up to a traitor's
uplink and listen to items they purchase to do any special effect
on-purchase, so this adds support to do anything in the future with it.
Also tells players how much TC they actually have without forcing them
to close/reopen the UI every time they insert some TC in it by hand.
## Changelog
🆑
fix: Uplinks now update their UI when you add telecrystals in them, so
you don't need to close and reopen it.
/🆑
## About The Pull Request
Fixes the entire roundend report turning bold if there was a space
dragon with carp.
## Why It's Good For The Game
yet another roundend report issue fixed.
## Changelog
🆑
fix: Space Dragon's carp allies no longer turn the entire roundend
report into bold.
/🆑
## About The Pull Request
In the title, Changeling's "Revival Stasis" ability with the description
"We fall into a stasis", now puts you in stasis
## Why It's Good For The Game
I just found out that this doesn't actually put you in stasis and it's
kinda fucked up, it's in the name it's in the description, why is it not
the actual case?
It would be nice if Changelings can use this ability to actually fake
death from critical condition without risking a death gasp when they die
for real just because you got oxygen damage while in your "stasis", thus
going against the defibrillator explosion ability.
## Changelog
🆑
add: Changeling's reviving stasis ability now puts you in stasis.
/🆑
## About The Pull Request
What it says on the tin. I also replaced checks with it everywhere I
found appropriate, hopefully without accidentally breaking anything.
## Why It's Good For The Game
We have a helper for most other antags, and it makes code a lot cleaner
and easier to read. I'm surprised we didn't have this one already.
## Changelog
🆑
code: added an IS_CHANGELING() helper and used it where applicable
/🆑
## About The Pull Request
Remakes a button in admin secrets panel from everyone is traitor to
everyone is admin chosen antag.
## Why It's Good For The Game
Slightly better buttons for admin to push
## Changelog
🆑
admin: remade everyone is traitor into everyone is antag in secrets
panel
/🆑
## About The Pull Request
Fixes#79318
- See the issue for more information. I fixed the runtimes as expected,
and then removed `SURGERY_REQUIRE_LIMB` from some surgeries which don't
actually require a limb, such as implant removal, dissection, and living
revival. I could've easily missed some, and as a result some surgeries
are lost to the void and unselectable, but from what I could tell in
testing it seems... fine.
- Adds `SHOULD_CALL_PARENT` to surgery `can_start`. Cleans up some
surgery `can_start` overrides.
- Adds missing sounds to puncture repair surgery.
## Changelog
🆑 Melbert
fix: Fixed Puncture Repair surgery not having surgical sounds
fix: Fixed Surgery Initiator potentially showing invalid surgeries
/🆑
## About The Pull Request
Apparently, ash mark is supposed to replenish mansus grasp cooldown by
75% when triggered, but this is neither reflected by the research
description, nor functional ingame. This edit makes it work, and adds
the effect to the description.
Additionally, that same block of code was present in moon mark research
also. I removed that because I assume it is intended to be an ash-only
feature, and moon only had it because of copy-pasting.
And since we're at it, I also reworded the mark description to be more
clear about the mark only transferring to a single heathen at a time.
## Why It's Good For The Game
I don't think we should have code which does not work. The options are
to either remove it, or make it work, and the latter is more fun.
## Changelog
🆑
fix: ash mark now properly lowers the cooldown of mansus grasp when
triggered
/🆑
## About The Pull Request
Fixes#79841
This PR fixes the bug where cyborgs could get high from being attacked
by regenerative materia blobs by adding a requirement that the target is
a carbon before applying the drug effect to them.
## Why It's Good For The Game
This isn't believed to be intentional (its marked as a bug) and applying
the drugginess effect to non-carbons has shown in the past to cause some
issues (ex. cyborgs which have the high effect for much much longer than
intended were it applied to a carbon)
## Changelog
🆑
fix: Regenerative Materia blobs can no longer drug non-carbons.
/🆑
## About The Pull Request
Fixes the 2% xeno's roundend report from turning the rest of the report
into bold letters.
## Why It's Good For The Game
look it's not all bold anymore

## Changelog
🆑
fix: Science Xenos no longer turn the entire roundend report into bold
letters.
/🆑
## About The Pull Request
Currently all ghost roles, when polling for players, shows a syndicate
poster. This is lame as hell, especially since most of the roles aren't
even Syndicate aligned.
This adds support to have your own icons for it, and adds one for the
Paradox clone since I already had an idea for it.
## Why It's Good For The Game
Paradox clones are not syndicate aligned and it does not make sense to
portray that to players, this looks much better, and hopefully soon
other antags will follow suite.

## Changelog
🆑
add: Paradox clones now have a bluespace stream instead of a syndicate
poster as their ghost poll icon.
/🆑
## About The Pull Request
Once again, I fix a few errors in the heretic research tree:
- the lunar path no longer unlocks its sidepaths and reroll one research
before every other path, and this side knowledge in turn no longer
unlocks the earlier knowledge of the moon path
- blood siphon no longer unlocks apetra vulnera in addition to its
proper main path nodes
- ashen ritual now unlocks the nightwatcher's rebirth, instead of
unlocking the lonely ritual
- lunar blade upgrade is no longer cheaper than those of the other paths
- burglar's finesse now costs 1 point like other knowledge of its level
## Why It's Good For The Game
Heretic tree should not be irregular for no reason, I think. If any of
those quirks were intentional, please let me know.
## Changelog
🆑
fix: smoothed out a few asymmetries in the heretic research tree
/🆑
## About The Pull Request
You can no longer convert your objective targets to your blood brother
team.
This means the usual "commit violence against this user" objectives, but
also includes protect objectives and should (theoretically) prevent you
from converting targets from other conflicting objectives such as
mutiny/sacrifice/obsession targets.
## Why It's Good For The Game
This kind of fucks up the whole antagonist on a conceptual level. Pick
ANYONE else please!
## Changelog
🆑 Rhials
fix: You can no longer convert assassination targets to your blood
brother team.
/🆑
## About The Pull Request
fixes#80963
previously if the place you got sent from was uninhabitable you'd just
be left for dead. if you were already dead, you might never find out
why.
Now, even if the location you got sent from is fucked, you'll just get
zapped with the heart attack gun and blasted off there anyway.
## Why It's Good For The Game
RRing people to off-map Z-levels with no way of escape is not intended
for contractor afaik.
## Changelog
🆑
fix: fixes contractor abduction RRing people in the offmap hideout
without any feedback. You might not like how it turns out, but your body
will get back to the station now.
/🆑
## About The Pull Request
[Converts all manual extraction of rbg with rgb2num. It's just
better](ae798eabd5)
[Yanks out old HSV management, replaces it with list
stuff](4997e86051)
There's this old lummy era clunky code that passed HSV as text
We can now cleanly replace it with passing hsv as lists from a rgb2hsv
proc
So let's just do that.
Also, cleans up spraytan code (and ethereal lighting)
## Why It's Good For The Game
Code better
## About The Pull Request
With the recent changes to polling, it seems like it didn't properly
poll cultists, I fixed that and fixed other issues with it (such as it
telling players that they are signing up to BE a cult leader, when they
arent).
Also fixed the button to put yourself forward as cult leader, it
properly removes and gives itself when necessary.
## Why It's Good For The Game
Cult button works again how cool is that
Closes https://github.com/tgstation/tgstation/issues/80620
## Changelog
🆑
fix: Cultists can now vote for a Cult leader again.
/🆑
## About The Pull Request
Cult pylons read from our existing list of "turfs which don't count as
floor despite being open turfs" instead of having its own one, which did
not include openspace turfs.
This prevents it from "papering over" things like stairwells and sealing
people inside their base.

## Why It's Good For The Game
It's not supposed to do that, and fixing it this way is futureproof to a
greater degree.
## Changelog
🆑
fix: Cult pylons will no longer cover up "open space" (or water) with
cult floors
/🆑
## About The Pull Request
Fixes#81022
The original idea was for kidnapping victims to be returned to the same
area they were kidnapped from (dropoff_area), but this was always a
typepath to an area and not a datum reference (and was set to null
immediately after kidnapping with ungenerate_objective()) and it always
fell back to the get_safe_random_station_turf() method. This worked fine
until #80644 attempted to optimize it, causing a runtime and returning
early.
This removes the code to return them to the same area and instead just
uses get_safe_random_station_turf(), runtime-free.
## Why It's Good For The Game
Kidnapping victims now actually return to the station after 3 minutes
with their stuff. I think returning to a random area is cooler than the
same area they were sent from anyways, I can imagine a traitor just
waiting it out if they wanted them dead and unable to snitch.
## Changelog
🆑
fix: Kidnapping traitor objective now properly returns the victim to the
station with their items
/🆑
## About The Pull Request
This does what I suggested on
https://github.com/tgstation/tgstation/pull/79884 and some more fixes
that I found while messing around.
This was a big oversight when I was adding contractor originally,
uplinks were reworked entirely and I didn't take it into account
properly, this hopefully will fix those.
I also gave contractor support units their own flavor and removed their
uplink section since they do not get one, so they aren't an "MI13 agent"
or anything, they work solely for this one guy.
There were reports that people being contracted didn't send them back
with their equipment but I haven't been able to replicate that bug and I
do not see an issue report on it so I am going to assume that for now it
is fine.
## Why It's Good For The Game
Closes https://github.com/tgstation/tgstation/issues/79883
Contractor support units now properly work as intended and don't feel
like a buggy mess.
## Changelog
🆑
fix: Contractor support units now don't have flavortext telling them
they work for someone else but their agent.
fix: Contractor support units now comes in an antag spawner (like
syndicate monkey, nukie borgs/reinforcements).
fix: Syndicate monkeys now get their monkey antag datum.
/🆑
## About The Pull Request
Lunatics now have an objective and it properly displays.
Lunatics now get a moonlight amulette on the ground if their hand are
full.
## Why It's Good For The Game
Lunatics had no idea who their master was except for their flavor text.
This made it kinda confusing. This was worsened when they didnt have the
identifying amulette.
## Changelog
🆑
fix: Lunatics spawned from moon ascension now actually have an objective
to assist their ringleader
fix: Lunatics now get a moonlight amulette on the ground if they have
full hands
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Nukies were using ``get_machines_by_type`` in ``assign_nuke`` to get the
nuke and set its code, which doesn't work for clown ops because they use
a subtype. This fixes it by replacing it with
``get_machines_by_type_and_subtypes`` instead.
while I was messing with clown op code I also made it a little bit less
copy paste

## Why It's Good For The Game
Clown ops now get a code to their nuke rather than it staying as
'ADMIN', pretty cool!
Closes https://github.com/tgstation/tgstation/issues/78306
## Changelog
🆑 Momo8289, Pepsilawn, Sinsinins, JohnFulpWillard
fix: Clown ops now get a code set for their nuke.
/🆑
## About The Pull Request
Situation: areas have a list of all turfs in their area.
Problem: `/area/space` is an area and has a 6 to 7 digit count of turfs
that has to be traversed for every turf we need to remove from it. This
can take multiple byond ticks just to preform this action for a single
space rune
Solution: split the list by zlevel, and only search the right zlevel
list when removing turfs from areas.
replaces `area.get_contained_turfs()` with a few new procs:
* `get_highest_zlevel()` - returns the highest zlevel the area contains
turfs in. useful for use with `get_turfs_by_zlevel`
* `get_turfs_by_zlevel(zlevel)` - returns a list of turfs in the area in
a given zlevel. Useful for code that only cares about a specific zlevel
or changes behavior based on zlevel like lighting init.
* `get_turfs_from_all_zlevels()` - the replacement for
`get_contained_turfs()`, renamed as such so anybody copying/cargo
culting code gets a hint that a zlevel specific version might exist.
Still used in for loops that type checked so byond would do that all at
once
* `get_zlevel_turf_lists()` - returns the area's zlevel lists of lists
but only for non-empty zlevels. very useful for for loops.
The area contents unit test has been rewritten to ensure any improper
data triggers failures or runtimes by not having it use the helpers
above (some of which ensure a list is always returned) and access the
lists directly.
## About The Pull Request
Allows the relentless heartbeat spell to be unlocked after purchasing
burglars fineness.
## Why It's Good For The Game
It lets me have a chance at winning when my targets are more robust than
I am.
Also fixes https://github.com/tgstation/tgstation/issues/80961
## Changelog
🆑
fix: Lock heretics may once again access 'the relentless heartbeat'
after purchasing 'burglars fineness'.
/🆑
## About The Pull Request
- Don't apply `connect_range` if we don't have a trauma. We early return
anyways, might as well save the effort.
- Fixes a few messages being unspanned. Changes a few messages to use
hypnophrase span rather than warning span, so it sticks out more.
- Fixes faulty assumption that only carbons are examining.
- Fixes the chat messages for examine_effects happening before the
examine block, not after, by adding a short timer in examine before they
are invoked.
## Changelog
🆑 Melbert
fix: Fixes some eldritch painting messages having no chat span
fix: Fixes eldritch painting messages triggering before the examine,
making it hard to see
fix: Fix beauty eldritch painting doing nothing to heretics who examine
it
/🆑
## About The Pull Request
Free GBP, I think?
It only spawns in space, but it only spawns on a planet... hold up
that's never.
## Why It's Good For The Game
Bugfix good.
## Changelog
🆑
fix: Fixed round event controller pirate spawns.
/🆑
Co-authored-by: RikuLeinonenVuoksi <riku.leinonen@vuoksi.fi>
## About The Pull Request
- Fixes formatting for a message.
- Just needed a space.
- Fixes anomalies spawned by grand rituals not working
- Classic passing of new kwargs to an atom not being functional.
## Changelog
🆑 Melbert
fix: Anomalies spawned by grand ritual runes sound act more like
anomalies
/🆑
## About The Pull Request
This PR makes changeling eggs work again. Apparently at some point, they
stopped working entirely, as they never properly got added as an organ
to the victim's body (ironically because we were doing TOO MUCH work,
not too little). This PR also changes how changeling eggs keep track of
time until they hatch in order to make it more consistent.
## Why It's Good For The Game
Changeling eggs should work, right? Also, making the egg timer not
completely reliant on a passed in magic number and the whimsies of
Life() being proc'd when it should be consistently for 4 minutes should
make the egg feel more reliable to use.
## Changelog
🆑
fix: Changeling eggs laid by headslugs work again
fix: Changeling egg incubation times should feel much more consistent,
hatching after 4 minutes
/🆑
## About The Pull Request
This PR adds a new mechanic for Nightmare, which I've dubbed "critical
strikes". If Nightmare stays in jaunt for 15 seconds, its light eater
will get a red glow in the inventory, along with a balloon alert which
says, "critical strike ready". Visually, it looks like this:

If Nightmare hits a mob with the light eater in this state, one of four
things will happen:
- If its a carbon that isn't a hulk, the carbon will be stunned for 1
second, dropping their items in the process
- If its a cyborg, the cyborg will be stunned for 2 seconds (twice the
health, twice the fear factor required)
- If its a simple/basic mob or a hulk, the mob will take double damage
from the strike (50 as opposed to 25)
- If the target is dead, you'll note how you wasted the critical strike,
but had fun doing it
While the stun itself is not very long, it will cause crew to drop their
held items and be unable to act for a short duration, which should be
useful for ambushing lone wolves and causing more prepared crew to have
to scramble to get their gear off the floor when caught.
If the Nightmare uses the critical strike, it will go away and require
Nightmare to stay in jaunt for 15 more seconds in order to regain it.
Manifesting while your critical strike is recharging will also stop and
reset the timer.
## Why It's Good For The Game
Nightmare is simple, gory fun, and there's nothing wrong with that.
However, Nightmare performs poorly in any scenario where someone has
some basic gear, since it lacks the ability to use stun batons, has no
armor, and has no stun resistance itself, which means how much a
Nightmare can actually do tends to be very little. While some buff
proposals seek to add complexity to playing the role, I think this one
is clean and simple to use while effectively buffing their proficiency
in 1v1 combat (perfect for an ambush playstyle), giving players a reason
to be afraid of going up against or getting caught out by the Nightmare
alone.
## Changelog
🆑
balance: Nightmare's Light Eater can now stun targets under certain
conditions.
/🆑
## About The Pull Request
These calls never got updated from when they were made basic.
Also I'd love to just use `adjustBruteLoss(-amt)` for these but basic
mob damage is a bit cringe (it would allow you to exceed health cap and
also it would apply brute modifiers)
## Changelog
🆑 Melbert
fix: Fixes some cult spells being unable to heal constructs (blood rites
particularly)
/🆑
## About The Pull Request
Merry Christmas, I bring Chaplain code.
This PR reworks how cultists obtain the bloody bastard sword.
Instead of sacrificing a Heretic, you gain the bastard sword by
sacrificing a Null Rod that has been used by a holy person to spill
cultist blood.
You can also sacrifice a Null Rod to turn it into a cult blade it if
hasn't spilled any blood, as a means of destroying it.
- Putting a Null Rod over an Offer rune with
- 0 or 1 cultist crits / kills will transform it into ritual dagger.
- 2 cultist crits / kills will transform it into longsword.
- 3 or more cultist crits / kills will transform it into the bastard
sword.
This effect does not apply to special null rod types like the Bow or
Scythe implant.
Heretics retain their innate cult stun resistance, and are still
un-convertable.
## Why It's Good For The Game
- Allowing the Cult to get multiple of these things is horrible.
- This puts a soft-cap on it to 1 under most circumstances.
- This makes obtaining the sword less incredibly easy.
- Heretics require a lot more time and effort to get equipped to pose a
passing chance fighting cultists. As a consequence, it's dead easy to
obtain: `I try to convert a guy 10 minutes into the round, they glow
green, I stab them to death with my dagger. They can do nothing to
defend themself. Free sword.`
- Instead, we put it behind the chaplain, who more often than not is
protected by security.
- Additionally, we put it behind the requirements that the chaplain is
*robust*: a chaplain that has been killing cultists actively.
- This also serves as a "comeback" mechanic, as if a chaplain has been
ripping and tearing through your ranks, but you manage to take them
down, you are rewarded with a strong weapon.
Honestly I would prefer if we straight up removed the sword (or... maybe
nerfed it) but improve, don't remove etc.
## Changelog
🆑 Melbert
balance: Blood cultists can now convert a Null Rod into a cult weapon on
an offer rune. The strength of the weapon it is converted into depends
on how many cultists the Chaplain crit / killed with it. At five or
more, it will turn into a Bastard Sword. Note, sacrificing someone
holding a Null Rod will automatically convert it after they are gibbed.
balance: Heretics no longer produce a Bastard Sword upon cult
conversion. They are still immune to cult stun and cannot be converted
by blood cultists.
/🆑
## About The Pull Request
Fixes Lionhunter Rifle being inaccessible to all paths but Rust and
Blade.
Fixes certain key lock knowledges being inverted.
## Changelog
🆑 Melbert
fix: Lionhunter Rifle is now available at the same point as Mawed
Crucible, making it available to all paths again.
fix: Lock knowledge now goes the correct order. Mark -> Ritual -> Unique
item, rather than backwards.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/78739, caused by
broken logic in
`/datum/heretic_knowledge/codex_cicatrix/recipe_snowflake_check`.
This is my fix at
https://github.com/Monkestation/Monkestation2.0/pull/881 ported
upstream.
## Why It's Good For The Game
Because it's very inconvenient when the game says you can use X to craft
Y, when in reality it doesn't work due to a bug.
## Changelog
🆑
fix: Fixed the Codex Cicatrix always requiring a dead body, despite the
description saying leather or a hide would work too.
/🆑
## About The Pull Request
Replaces natural beheading (doing a lot of damage to the head) with
cranial fissures, which split your skull in half.

While you have this wound, your eyes can be pulled out of your head with
bare hands, and slipping will spill your brain out of your head.
Removes beheading objective from traitor.
Zombies can be beheaded all the same.
Any other way of beheading, such as surgery or amputation shears, is
still possible.
Closes#80439
## Why It's Good For The Game
I've enjoyed seeing the results of the test merge to remove natural
beheading. At 947 beheadings in a week, 1 in every 7 deaths resulted in
a beheading. This makes it significantly easier to remove people from
rounds as the brain is generally critical to actually reviving someone.
While round removal is fine, it should be something that is
intentionally performed with enough effort. Mass round removals ought to
require a significant amount of effort. There are plenty of ways to
round remove someone, but it ought not be an incidental choice.
The effects of beheading removal have shown some interesting anecdotal
highlights (nothing here is backed up with stats, so take it with a
grain of salt):
1. As a whole, people did not really replace it with anything. The
biggest alternative has been lighting people on fire, but this has not
been done at a significant enough scale at all to be a noteworthy
problem, and is still fixable with enough effort.
2. Cult and rev rounds have played out far more interestingly. In one
round I was adminning a head of staff who intended to behead every
revolutionary they saw, but because they didn't, the back and forth
continues. I've also had opportunities to revive head revs that I am
skeptical would've been available to me otherwise.
Complete removal of beheading was not chosen as it does not feel right
for a repeated fire axe to the head to do basically nothing. The current
implementation is intended to be something that is just not useful
enough to do on everyone you see, but is still appreciably an effect.
## Changelog
🆑
balance: Instead of too much damage to the head beheading someone, it
will now split their skull in half. While their skull is open, you can
rip out their eyes with your hands. and they will spill their brain out
of their head if they slip.
balance: The Path of Blades ascension will accept either a beheaded
person, or someone with their skull split open.
del: Removed the beheading objectives from traitor.
/🆑
## About The Pull Request
This pull request makes the paths as follows:
Rust<>Cosmic<>Ash<>Moon<>Lock<>Flesh
This means flesh and ash are no longer adjacent and their old sidepaths
is now between moon and ash
Apetra Vulnera has been moved up one tier and is now unlocked at
caretakers refuge/stalker for lock/flesh.
## Why It's Good For The Game
Heretic paths should actually fit with each other and this ensures that
it does. As for the removal of brains from certain rituals it is a very
difficult organ to obtain as opposed to the rest of the bunch and we are
moving towards a direction of making brains even harder to obtain so
this ensures those rituals still stay relevant.
## Changelog
🆑
qol: Path of moon and lock now actually fit in the heretic tree
balance: Certain path of moon rituals that needed brains now use easier
to obtain organs
/🆑
## About The Pull Request
The ascension didnt produce any lunatics because it fails to find
everyone and so a z-level check failed causing no people to turn into
lunatics
## Why It's Good For The Game
The bug causes the ascension to not work
## Changelog
🆑
fix: the moon heretic ascension now produces lunatics again
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Goes through and changes some `in area` / `in a` loops to use
`get_contained_turfs` to cut down on `in_world` loops. Saves some free
lag.
## Changelog
🆑 Melbert
fix: Some things which affect everything in an area are less laggy, the
"all lights are broken" station trait especially
/🆑
## About The Pull Request
Despite being cast to a living, this argument had no guarantee of being
one.
## Changelog
🆑 Melbert
fix: Fixed runtime from blobbernauts attacking non-living things
/🆑
## About The Pull Request
Got the idea from #80682. A lot of parent procs don't do anything, some
are just formatted in a bad way, and others early return and do no ops,
it's bad in general but this should give us a head start.
Some good overhead saved here
## About The Pull Request
This pull request adds a new path.
The cross path is between ash and lock.
Credit to Fury McFlurry for the following sprites:
ring_leader_effect
The path goes as follows:
Moonlight Troupe
Grasp of Lunacy
Smile of the moon
> Sidepaths:
Mind Gate
Ashen Eyes
Mark of Moon
Ritual of Knowledge
Lunar Parade
Moonlight Amulette
> Sidepaths:
Curse of Paralasys
Unfathomable Curio
Unsealed Arts
Moonlight blade
Ringleaders Rise
> Sidepaths:
Ashen Ritual
Last Act
Moonlight Troupe:
The first knowledge of path of moon, lets you make Lunar Blades with 2
iron and a knife
Grasp of Lunacy:
The grasp of this path hides your name for 15 seconds after use, but
more importantly it causes the person hit with the grasp
to hallucinate everyone as indistinct human like figures.
Smile of the Moon:
A pointed spell that causes temporary blinding, muting, deafening and
confusing on the person its targeted at, these effects
last longer the less sanity your victim has.
https://github.com/tgstation/tgstation/assets/120136161/db7cfaaa-8fe2-4f20-aa78-c17c17be4d63
Mindgate:
Lock-Moon. This spell causes you and your victim brain damage, the
victim also suffers a short amount of hallucinations
and also 20 oxyloss.
https://github.com/tgstation/tgstation/assets/120136161/11d15acd-11d0-4e7d-a180-6481b18e9fd9
Mark of Moon:
When applied this paths mark pacifies the victim and they remain
pacifist until attacked or until the mark is detonated, when
detonated the victim is left confused.
https://github.com/tgstation/tgstation/assets/120136161/41e601b5-76d4-4765-8b49-ada7de09feb7
Lunar Parade:
A spell that sends out a projectile that causes people hit by it to
follow the projectile whilst being unable to move. The
projectile also bounces around and is really useful to get people off
your back during chases.
https://github.com/tgstation/tgstation/assets/120136161/cddc8390-e8aa-4d68-b1a5-ab181e941a9b
Unfathomable Curio:
Transmute 3 rods, a brain and a belt into an Unfathomable Curio a belt
that can hold blades and items for rituals. Whilst worn
will also veil the heretic, allowing them to take 1 hit without
suffering damage, this veil will recharge quickly outside of
combat. If examined the examiner suffers brain damage and temporary
brain damage, and if a non-heretic uses it once the shield is damaged
the non-heretic user suffers massive brain damage and a permanent
uncurbable brain trauma. Lock-moon
Unsealed Arts:
Allows you to transmute a canvas and an additional item to create a
piece of art, these paintings have different effects depending on the
additional item added. Lock-moon
Possible paintings:
The sister and He Who Wept:
Additional atoms: Eyes.
When a non-heretic looks at the painting they will begin to hallucinate
everyone as heretics.
The First Desire:
Additional atoms: Any bodypart.
Increases the hunger of non-heretics, when examined drops an organ or
body part at the painting.
Great chaparral over rolling hills:
Additional atoms: Any grown food.
Spreads kudzu when placed, when examined grants a flower to the heretic.
Lady out of gates:
Additional atoms: Gloves.
Causes non-heretics to scratch themselves until they remove their
jumpsuit, when examined removes all your mutations.
Climb over the rusted mountain:
Additional atoms: Trash.
Causes non-heretics to rust the floor they walk on and when examined
gives you a cool moodlet
These effects are mitigated for a few minutes when a non-heretic
suffering an effect examines the painting that caused the
effect. Except for great chapparal which spawns kudzu at their feet, and
Lady out of gates which gives them a random negative mutation.
https://github.com/tgstation/tgstation/assets/120136161/1d1bdd2f-cda5-4430-b3af-4742f98a59a8https://github.com/tgstation/tgstation/assets/120136161/4e843ae4-9786-4e9b-8681-582713f4c789
Moonlight Amulette:
Allows the heretic to transmute 2 sheets of glass, a pair of eyes, a
brain and a tie. If the amulette is used on someone with low
sanity they go berserk attacking everyone if their sanity isnt low
enough it decreases their mood. Optionally you can add a
poppy in the ritual to further decrease their mood on hit.
https://github.com/tgstation/tgstation/assets/120136161/ab820b3f-e7e6-407a-9a1a-93d49c0d7387
Moonlight Blade:
Causes the heretics blades to do brain and sanity damage whilst causing
hallucinations. The blades also cause giggling and
laughter on hit.
Ringleaders Rise:
An AoE spell that deals more brain damage the lower the sanity of the
victim, also causes hallucinations that last longer the
lower the sanity of the victim. If the victims sanity is low enoughit
causes them to go insane, the spell then halves their sanity.
This spell is on a longer cooldown and is more meant to be used as a
payoff or an instigator for a fight. The AoE area is 7 tiles
https://github.com/tgstation/tgstation/assets/120136161/4de85ba2-448a-485c-b739-77fcce86c0cb
Last Act:
The ascension lowers the cooldown of all the heretics spells by 33% and
increases the AoE range of Ringleaders Rise. The main
effect of this ascension is a passive sanity drain and hallucination
aura, if you have low sanity in the aura you will start to suffer
brain damage and if you reach the bottom you gain an aura of
hallucinations thus spreading the moon heretics influence
further. Not only that but roughly 1/5th of the crew will rise in
support of you becoming mini-heretics called acolytes that will attempt
to obey your commands!
I had videos showing off everything but they were too big for github
sadly so I will have to think of some other way to showcase all this
stuff.
This pr also adds a new optional atoms system which means that you can
have rituals that can be improved by adding additional atoms, like for
example moonlight amulette.
Feel free to give some suggestions for further ascension effects.
## Why It's Good For The Game
I feel like heretic is really missing a playstyle around insanity and
this slots neatly in to feel that gap. For being an eldritch antag of
horrors there is surprisingly little interaction with the sanity system
and I feel like this makes up for it, heretic is also missing some
distractions which is where the paintings can really shine and the
hallucinations which breed paranoia.
## Changelog
🆑
add: A new heretic path opens up! Gaze up at the great sky for the path
of the moon opens and the lie shall be slain in pursuit of ultimate
truth!
fix: Fixes the syndicate delusion not working
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## 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).
/🆑
## About The Pull Request
After https://github.com/tgstation/tgstation/pull/80628, these shouldn't
be needed anymore right?
## Why It's Good For The Game
Cleans up some vestigial code
## Changelog
EDIT: Not player-facing.
Productionizes #80615.
The core optimization is this:
```patch
- var/hint = to_delete.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
+ var/hint = to_delete.Destroy(force) // Let our friend know they're about to get fucked up.
```
We avoid a heap allocation in the form of copying the args over to a new
list. A/B testing shows this results in 33% better overtime, and in a
real round shaving off a full second of self time and 0.4 seconds of
overtime--both of these would be doubled in the event this is merged as
the new proc was only being run 50% of the time.