Commit Graph

2508 Commits

Author SHA1 Message Date
LemonInTheDark
70651816c2 Fixes complex lights not handling moving well, renames lighting defines (#81423)
## 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
/🆑
2024-02-12 20:50:20 +01:00
Rex9001
667417b1dc [NO GBP] Heretic path of moon, post launch patch (no jeature jeeze this time) (#81428)
## 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.
/🆑
2024-02-12 14:55:44 +01:00
MrMelbert
06a4d47945 Freedom implant and Biodegrade works on knotted shoes (#81376)
## 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.
/🆑
2024-02-11 00:36:53 +01:00
John Willard
fdcd4d3979 Adds a signal to buying items from the uplink (& fixes TC misinfo) (#81372)
## 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.
/🆑
2024-02-10 18:57:19 +01:00
John Willard
3e325829ab Space dragon no longer turns the entire roundend report bold (#81370)
## 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.
/🆑
2024-02-10 06:17:29 +01:00
John Willard
cba381c803 Reviving stasis now puts you in stasis (#81339)
## 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.
/🆑
2024-02-09 11:22:19 -05:00
A miscellaneous Fern
44ce6d923d Adds an IS_CHANGELING helper (#81228)
## 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
/🆑
2024-02-09 08:56:57 -05:00
Holoo
c6f137fdb4 Minor update to admin secrets panel (free antags for everyone) (#81292)
## 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
/🆑
2024-02-08 20:52:12 -08:00
MrMelbert
a40986353d Fixes surgeries runtiming constantly when having the surgery initator open, fixes some surgeries missing sounds (#81307)
## 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 
/🆑
2024-02-08 13:37:02 +01:00
ViktorKoL
a79e6dae2a Restore non-functional ash mark ability (#81320)
## 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
/🆑
2024-02-07 21:59:04 +01:00
IndieanaJones
eab7e3adc7 Regenerative Materia Blobs No Longer Drug Non-Carbons (#81318)
## 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.
/🆑
2024-02-07 15:27:53 +01:00
tattle
67129d8953 Fix null in blood brother checking (#81330)
BB conversions were borked a little in #81305

Currently they cannot flash people because of a missing null check in the conversion code.
2024-02-07 06:42:39 +00:00
John Willard
92180a8f80 Science Xenos no longer turn the roundend report all bold (#81311)
## 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

![image](https://github.com/tgstation/tgstation/assets/53777086/5b46dc02-5fb5-4d16-aedf-fc1c11aad045)

## Changelog

🆑
fix: Science Xenos no longer turn the entire roundend report into bold
letters.
/🆑
2024-02-07 05:31:25 +01:00
John Willard
4dba3f75f3 Gives paradox clone their own ghost polling icon (#81229)
## 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.

![image](https://github.com/tgstation/tgstation/assets/53777086/b6016ff1-9914-42a8-bd9f-e72ba5539e11)

## Changelog

🆑
add: Paradox clones now have a bluespace stream instead of a syndicate
poster as their ghost poll icon.
/🆑
2024-02-07 05:15:44 +01:00
ViktorKoL
38611944df Fixes some irregularities in heretic research tree (#81302)
## 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
/🆑
2024-02-07 04:40:06 +01:00
Rhials
fc09ccf97c You can no longer convert objective targets to your blood brother team (#81305)
## 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.
/🆑
2024-02-06 22:55:46 +01:00
Higgin
4e2970ced3 [FIX] Removes accidental? RR from contractor GBJ (#81286)
## 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.
/🆑
2024-02-05 12:08:01 -05:00
Xander3359
98a0c13b60 Lowers contractor baton cost. Baton can only be bought by roundstart traitors, while midroll/latejoin traitors cannot buy a baton (They must buy the contractor kit for one). (#81204)
## About The Pull Request
Contractor baton 12 -> 7 TC
Mid/latejoin traitors can no longer buy a baton (They must buy the
contractor kit)
Fix midroll/latejoin traitors having access to roundstart traitor shop.
## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/66163761/61d1c243-72bd-43e1-b404-666da06d1c4e)


![image](https://github.com/tgstation/tgstation/assets/66163761/1d58c782-925e-446b-8fe4-8fbfc32774e7)
## Changelog
🆑
balance: Contractor baton costs 7 TC (down from 12 TC)
balance: Midroll/Latejoin traitors can no longer buy the baton, they
must buy the whole kit
fix: Midroll/Latejoin traitors no longer have access to roundstart
traitor exclusive items
/🆑
2024-02-03 22:53:21 +00:00
LemonInTheDark
18075704e9 Implements rgb2num, uses it to replace all our manual rgb reading. Redoes HSV management (#81182)
## 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
2024-02-01 13:43:50 +01:00
John Willard
850ace7a84 Fixes Cult voting for a leader (#81169)
## 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.
/🆑
2024-01-31 20:12:20 +01:00
Jacquerel
19f3631a62 Cult pylons won't convert floorless floors (#81171)
## 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.


![image](https://github.com/tgstation/tgstation/assets/7483112/f91ad4a3-8546-4861-9098-31817ea30821)

## 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
/🆑
2024-01-30 18:57:40 +01:00
Isratosh
212fd7f472 Kidnapping traitor objective properly returns victim (#81081)
## 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
/🆑
2024-01-25 00:40:45 -08:00
John Willard
d148691080 Fixes contractor support unit (#81054)
## 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.
/🆑
2024-01-23 19:59:25 +01:00
MrMelbert
55e5dfdf78 Fix heretic rune layering by using pixel_z (#80990)
## About The Pull Request

Fix items layering above heretic runes by making it use pixel_z rather
than pixel_y.


![image](https://github.com/tgstation/tgstation/assets/51863163/302d60df-cf4e-4a0d-b00e-7d6e42fb741a)

## Changelog

🆑 Melbert
fix: Items and mobs no longer hide behind big runes (heretic, cult,
wizard)
/🆑
2024-01-20 07:14:40 +01:00
Rex9001
3f008a5b69 [NO GBP] Fixes lunatics not having an objective and occasionally not getting their amulettes (#80981)
## 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>
2024-01-20 07:09:35 +01:00
John Willard
3ca3c781ef Fixes clown ops getting their codes (#80992)
## 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


![image](https://github.com/tgstation/tgstation/assets/53777086/2db9e859-8d53-4704-a110-7f8a5f33ee0f)

## 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.
/🆑
2024-01-19 19:48:07 +01:00
Kyle Spier-Swenson
8703eac50d split area.contained_turfs up by zlevel, make init 10 seconds faster (#80941)
## 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.
2024-01-18 12:16:12 -05:00
the-orange-cow
b3ee165dd7 lock heretics can gain relentless heartbeat again (#80962)
## 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'.
/🆑
2024-01-16 20:55:35 +01:00
MrMelbert
1c7e1d4648 Eldritch paining cleanup (#80903)
## 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
/🆑
2024-01-15 07:06:31 +01:00
RikuTheKiller
8e5acdd2ef Fixes round event controller pirate spawns (#80936)
## 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>
2024-01-14 11:09:47 +01:00
MrMelbert
db8ec5709d Fixes two minute grand ritual things (#80940)
## 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
/🆑
2024-01-14 11:07:13 +01:00
IndieanaJones
b487b34102 Headslug Eggs Work Again + More Consistent Timing (#80916)
## 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
/🆑
2024-01-13 20:40:21 +01:00
MrMelbert
0760b68d67 Adds sanity checks to /obj/projectile/moon_parade (#80826)
## About The Pull Request

Ensures `/obj/projectile/moon_parade` is actually handing living mobs
when hitting things.


![image](https://github.com/tgstation/tgstation/assets/51863163/4a0a1c33-8fc0-43ae-9d3d-29f5334a61d6)


![image](https://github.com/tgstation/tgstation/assets/51863163/463ad14a-d460-4f28-a08b-f591a019aacd)

## Changelog

🆑 Melbert
fix: Lunar Parade has the potential to break less. 
/🆑
2024-01-11 17:03:05 -08:00
IndieanaJones
beee24a4b5 Nightmare's Light Eater Gets "Critical Hits" (See Inside) (#80670)
## 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:

![image](https://github.com/tgstation/tgstation/assets/47086570/1510e98b-9a8c-41e6-8575-ef8826be198a)
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.
/🆑
2024-01-11 17:08:27 -05:00
MrMelbert
f74438b35f Fixes weird use of repeat_string to try to loop over something in Ringleader's Rise spell (#80899)
## About The Pull Request

`repeat_string` is made to repeat... strings, hallucination datums are
not strings. I assumed they were just trying to iterate instead.


![image](https://github.com/tgstation/tgstation/assets/51863163/ee58d6eb-bf3c-43b9-bfae-955aa1c125d7)

## Changelog

🆑 Melbert
fix: Fix Ringleader's Rise not causing as many hallucinations as
expected
/🆑
2024-01-11 16:18:19 -05:00
MrMelbert
f6d22ac2c4 FIxes being unable to heal constructs with certain cult spells (#80901)
## 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)
/🆑
2024-01-11 16:17:40 -05:00
MrMelbert
6053db92b1 Changes how Cultists obtain the bastard sword. Instead of sacrificing Heretics, you now sacrifice Null Rods, with a caveat. (#80583)
## 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.
/🆑
2024-01-09 14:20:58 -05:00
MrMelbert
59a96624da More heretic path fixes (#80855)
## 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.
/🆑
2024-01-09 14:15:40 -05:00
Lucy
f651df5de8 Fix the Codex Cicatrix transmutation not working as intended (#80862)
## 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.
/🆑
2024-01-09 14:14:53 -05:00
Mothblocks
a140505346 Replace natural beheading with cranial fissures (splitting your skull) (#80703)
## About The Pull Request

Replaces natural beheading (doing a lot of damage to the head) with
cranial fissures, which split your skull in half.


![dreamseeker_2023-12-31T19-38-16](https://github.com/tgstation/tgstation/assets/35135081/f84dc479-6156-45b7-bb23-4e4ec7378f6b)

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.
/🆑
2024-01-06 13:09:53 +01:00
Rex9001
1507329847 [NO GBP] Fixes path of moon and path of lock sidepaths, replaces brains with other organs (#80730)
## 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
/🆑
2024-01-04 20:01:10 +01:00
Rex9001
4d28e79023 [NO GBP] fixes moon heretic ascension (#80738)
## 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>
2024-01-04 18:11:21 +01:00
MrMelbert
279904e079 Saves some free lag by removing some in area (in world) loops (#80644)
## 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
/🆑
2024-01-04 02:13:48 +01:00
MrMelbert
4db0365589 Fix blobbernaut attack runtime on non-living mobs (#80740)
## 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
/🆑
2024-01-04 01:21:39 +01:00
SyncIt21
926d000d76 Some Processing improvements (#80693)
## 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
2024-01-01 20:58:34 +01:00
Rex9001
f88da4bcb9 Heretic DLC: Path of Moon (#79536)
## 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-4742f98a59a8

https://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>
2024-01-01 15:03:03 +01:00
MrMelbert
af4fddfbd2 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).
/🆑
2023-12-31 20:48:13 +01:00
Bloop
f34174414d Cleans up some extra args in Destroy() (#80642)
## 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.
2023-12-30 03:54:07 +01:00
Mothblocks
c1d68698fb Micro-optimize qdel by only permitting one parameter (#80628)
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.
2023-12-28 13:52:44 -08:00
Bloop
31da337b68 Spellchecks let's -> lets (#80612)
## About The Pull Request

This is a spellcheck pr

## Changelog

🆑
spellcheck: changes some let's to lets
/🆑
2023-12-27 17:56:22 -08:00