* Blob mobs use astar/jps for automated movement pathing, no longer get blocked by blob mobs
I could easily make all hostile mobs do this, but there are *concerns*. behavior isn't the same, performance would be bad, requires more careful testing.
Where as overriding this just for blobs fixes a mob that is functionally broken right now as they think they can't cross blob tiles because they use byond's walk_to and that checks density
* Minor improvements
Swaps the weakref list of targets heretics use to a list of hard references, due to handling them on deletion
Uses a proc for removing sacrifice targets
Sacrifice targets which are deleted for some reason in game will automatically remove themselves from the heretic's sacrifice list, allowing them to reroll easier
Apparently, having one of your targets gibbed as a heretic is pretty unfortunate.
As I was holding weakrefs to targets, they persisted despite deletion (which I did not expect to be a problem)
So, now, when a body is completely gone (and you can no longer sacrifice them), the slot is freed for you.
About The Pull Request
Moves Thief antag policy from hardcode to get_policy.
Example with policy in policy.json
image
Example with no policy in policy.json
image
Why It's Good For The Game
https://github.com/tgstation/tgstation/blob/master/.github/guides/POLICYCONFIG.md
This antag type doesn't support the POLICY config mechanism.
Changelog
No player-facing changes.
* Refactors phylactery to be a component
- Overall improves lich code
- Changed the SOUL_IMBUE signal to return a bitflag
- Minor style improvements (indentation and such)
* Tweak initialize + fixes a bug with being gibbed
* adds a clarification comment
* And fixes a compile error oops
* reorganizing
* clear the revive timer, just in case
* oops this should drop stuff
* missing no soul trait
* type in a variable name
* god damn devil removal
- this check was removed when devil was and i think it's kinda important to prevent stacking lichdom
* rework this a bit
* plurals
* also, wrong source
* updates the description
* Some review + undoes some changes
- Corrects some comments
- Uses defines
- Rewords the lichdom entry and spell desc
- Sets default time per res to 0 secs to avoid changing behaviors
About The Pull Request
Alternative to #65354
Ok so like, there was a lot of not floor types on /floor. They didn't actually want any of their parent type's functionality, except maybe reacting to breaking (which was easy to move down) and some other minor stuff.
Part of what we don't want them to have is "plateable" logic.
I should not be able to put floor tiles on the snow and be fine. It's dumb.
Instead, I've moved all non floor types down to a new type, called /misc.
It holds very little logic. Mostly allowing pipes and wires and preventing blob stuff.
It also supports lattice based construction, which is one of the major changes here. I think it makes more sense, and it fixes an assumption in shuttle code that assumed you couldn't place "a new tile" by just hitting some snow with a floor tile.
Oh and lattices don't smooth with asteroid tiles anymore, this looks nicer I think.
Moving on to commits, and minor changes
Changes clf3 to try and burn any turfs it's exposed to, instead of just floors
Moves break_tile down to the turf definition, alongside burn_tile
If you're in basic buildmode and click on anything that's not handled in a targeted way, you just build plating
FUNCTION CHANGE: you can't use cult pylons to convert misc tiles over anymore
Generalizes building floors on top of something into two helper procs on /turf/open, reducing copypasta
Adds a new turf flag, IS_SOLID, that describes if a turf is tangible or not.
Uses this alongside a carpet and open check to replace plating and floor checks in carpet code. This does mean that non iron tiles can be carpeted, but I think that's fine
Moves the /floor update_icon -> update_visuals call to /open
This change is horrificly old, dating back to 8e112f6 but that commit describes nothing about why it was done. Choosing to believe it was a newfriend mistake. Uncomfortable nuking it though, because of just how old it is. Moving down instead
Create a buildable "misc" type off open, moves /dirt onto it
Basically, we want a type we can use to make something support
construction, since that can be a messy bit of logic. Also enough
structure to set things up sanely.
I'm planning on moving most misc turfs onto it, if only because
constructing on a dirt tile with rods should be possible, and the same
applies to most things
Murders captain planet, disentangles /turf/open/floor/grass/snow/basalt
Adds a diggable component that applies the behavior of "digging"
something out from a turf.
Uses it to free the above pain typepath into something a bit more
sensible
The typepaths that aren't actually used by floor tiles are moved onto
/misc
The others are given names that better describe them, and kept in
fancy_floor
Oh and snowshoes don't work on basalt anymore, sorry
Snowed over platings now actually have broken/burned icon states, fixing black holes to nowhere
Misc turfs no longer smooth as floors, so lattices will ignore them
Placing a lattice will no longer scrape the tile it's on
Ok this is a really old one.
I believe this logic is a holdover from kor's baseturf pr
(97990c9)
It used to be that turfs didn't have a concept of "beneath" and instead
just decided what should be under them by induction. This logic of "if
it's being latticed scapeaway to space" made sense then, but has since
been somewhat distorted
We do want to scape away on lattice spawn sometimes, mostly when we're
being destroyed, but not always. We especially don't want to scape away
if someone is just placing a rod, that's dumb.
Adds a path updating script for this change
I've done my best to find all the errors this repathing will pull out, but I may have missed some. I'm sorry.
Why It's Good For The Game
Very old code made better, more consistent turfs for lavaland and icebox, better visuals, minor fix to snowed plating, demon banishment in lattice placement, fixes the icebox mining shuttle not being repairable
Changelog
cl
add: Rather then being tileable with just floor tiles, lavaland turfs, asteroid and snow (among other things) now support lattice -> floor tile construction
fix: Because of the above, you can now properly fix the icebox mining shuttle
refactor: Non floor turfs are no longer typed as floor. This may break things, please yell at me if it does
/cl
* Nuke Fridge
You can no longer survive a nuke blast by being inside locker, however, you have 10% chance of surviving it while inside a fridge.
* Patch
Thanks SuperNovaa41, Fikou, and Ebb
* var name change
Thanks MrMelbert
* Var name change 2
turf
* 100% survive chance
* Yeah
* Update code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
* Update code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
About The Pull Request
Simply converts all instances of soundkeys that use get_sfx from strings into defines.
E.g. "sparks" is now SFX_SPARKS
Why It's Good For The Game
It makes life a lot easier when you're looking for a sound effect. You just type SFX_ and you get suggestions in VSC. Plus, it looks better.
image
Changelog
Not player facing.
About The Pull Request
Continuation of #64375, extracting tool behavior from attackby() and moving it into discrete _act procs. This is about as many files as I had in the last version, as I still want this to be reviewable.
As before, I've tested everything in game and it works as it previously did.
Why It's Good For The Game
The more code moved out of attackby, the more modular things become.
Changelog
cl
refactor: Moves more tool behavior out of attackby().
/cl
I initially limited it to station z so admins can mess with heretics in the thunderdome.
Unfortunately, latejoins don't gain antag datums on the station z, They gain it in hyperspace.
Closes#64955 (Influence not being gained by latejoins)
Reagents work based off their name. Vaccines and fungal TB's vaccine had the same name.
Renames fake beer from "Beer" to "Beer...?", because it's been used 10 times this entire year and it's obvious it doesn't matter.
Fixes some typos in some other chemical names, where typepaths were not correct.
* Being retarded hurts
Needed to make a new branch cause dumb
* Minor ui change
* Requested changes
* Memory management my beloved
* Lemon said something, this might be better
* Thanks for being patient with me
* Stacktrace begone
Buffed the Raw Prophet's health by 15.
Decreased the sight range of the raw prophet, and allows them to toggle between expanded range and normal range.
Makes Raw Prophets drop their component parts on death, allowing a Heretic to collect and rebuild them.
Also makes all heretic monsters drop gibs on death instead of vanishing.
Raw Prophets now gain an attack bonus for hitting a target consecutively.
Allows blobs to destroy mineral turfs when necessary, such as when spawning on Ice Box.
Without this they face a distinct disadvantage against crew that can destroy mineral turfs with plasma cutters like a hot knife through butter to get a better angle on their core.
The fact they can't already seems like an oversight left over from when they would never normally encounter them due to spawning on space stations.
The bubble alerts provide a lot of feedback that was previously missing and saves taking your eyes off the game to look at warning messages in the chat.
The screen tips save you having to read the help screed to at least know what two of the shortcuts are.
Making off-station blobs lighter makes it immediately obvious which blobs count towards victory.
The Eldritch Amulet only gives you thermal vision when it's equipped in the neck.
Also re-arranges some of the checks for redundancy purposes. (mindless mobs wouldn't pass anyways)
I didn't check for the correct slot in equipped. Stupid mistake.
Closes#64897
This PR adds a new debug button to spawn in a bunch of human dummies, assign them to one of each station job, and add them to the manifest to simulate a "full crew" on a live server.
This PR also fixes heretic target assignment. shuffle_inplace() doesn't return the list it shuffled, so the loops never functioned, and all targets were randomly picked instead of picked with the logic.
Void ritual of knowledge should be of the void path. This fixes that.
Also adds a unit test to ensure all main paths are of the same length.
Funnily I think this was causing the main route calculations to be off, so the knowledge objective should be easier by one.
So this started out as a hard delete fix for the mansus link
Then I realized the mansus link was literally copy+pasted exactly the same code
And the reason why mansus link was hard-delling was because slime link used to hard-del and those were fixed but those fixes were never copied over
So in a fit of rage I refactored the slimelink to be a component, datum/component/mind_linker. Raw Prophets and Stargazers use it.
I'm not 100% certain on some of the methods used but it works? It works.
I was fucking deranged when I originally made this. I not only didn't actually include the assigned species to the uplink's ui data, but I made the code add each objective item to the uplink list twice. This fixes both of those problems, and makes it more readable.
Fixes a mistake I caused.
Closes#64806 (Species-Restricted uplink items don't appear)
Role-restricted and species restricted items can be purchased again.
Species-restricted items no longer appear in surplus.
About The Pull Request
This PR seeks to revamp heretic in it's almost entirety.
Closes#58435Closes#62114Closes#63605
image
Gameplay changes:
The heretic no longer starts with a Codex Cicatrix or a Living Heart.
Heretics now draw transmutation runes by using any writing tool while having Mansus Grasp active.
The Mansus Grasp can be used to remove heretic runes.
Draining influences can be done with "right click".
While draining, people who examine you may get a message hinting that you're interacting with an influence.
Drained influences can also be dispersed with anomaly neutralizers!
The Codex Cicatrix is now a researchable item that lets you gain additional knowledge from influences.
The Codex can still draw and remove runes, and does it faster.
The Living Heart is now the heretic's heart. Literally. It's the heart in their chest. Their heart takes on the appearance of a living heart, and they can pulse it on demand to track their targets. This makes an audible noise.
If your heart is lost (you're disemboweled or whatever), you need to do a ritual to regain it!
Casting any heretic spell (besides Grasp) requires a Focus.
A Heretic Focus is a neck item they can transmute.
Heretic robes also function as a focus when toggled up.
Ascending also disables the need for a focus, because of course.
Heretics now gain 1 knowledge point passively every 20 minutes.
Sacrificing has been revamped entirely.
A heretic now gains four sacrifice targets on spawn.
One random crewmember
One member of their department
One member of security
One member of command (a "high value" sacrifice)
You can sacrifice people who are in in soft-crit, hard-crit, or dead.
Sacrificing someone will cuff them (if they are not), HEAL them, revive them, and set them unconscious. After a short time. they will be sent to a shadow realm. This shadow realm is themed to your heretic type.
The shadow realm is a 2 minute long survival challenge where the sacrificee is subject to a constant barrage of shadowy hands.
If they survive, they are teleported back to a random turf with no memory of how they got there. They'll also slur a TON to get the point across.
If they die, their corpse is teleported back to a random turf on the station.
No more multi-hearting! Your targets are your own.
BUT adds a knowledge that allows heretics to reroll their sacrifice targets with a ritual.
Each path now has a "Rituals of Knowledge". These are randomly generated rituals that may be difficult to complete but awards knowledge points in return.
Ascending now has some requirements.
To learn the ascension ritual, you need to complete all of the objective you are assigned.
The ascension ritual now each have a varied requirement, instead of "needing 3 bodies" only.
Other minor gameplay changes:
Lots of balance tweaking.
Buffed some summons.
Buffed the Lord of the Night very slightly.
Nerfed the Madness Mask.
Put a limit on the amount of blade transmutations possible at once. 3 for flesh, 2 for other paths.
Logs of BUG fixing.
Rust Grasp is now based on right click for surfaces instead of combat mode.
General grammar and flavor tweaks a ll around.
Admin / code changes:
Revamped the way heretics appear within the traitor panel.
You can now easily see who they're targeting for sacrifice and what they have researched
Also adds some helpful buttons to heretics, like giving them points!
Refactored much, much of heretic code
LIKE ALL OF HERETIC CODE WAS IN 4 FILES.
Split up all the knowledge, spells, and items that belong to the heretic into their own files and folders.
Not only that, but everything internally was still named "Eldritch Cultist" and similar.
Almost every mention of "Eldritch Cultist" has been properly replaced by "Heretic".
Much better reference handling all around.
General code improvements over heretic stuff.
Unit tests, because of course.
Todo
Sprites for the focus
Look at adding 1-2 other objectives prior to ascension. Theft? Special rituals? ("Rust [x] tiles to be able to ascend")
Why It's Good For The Game
Okay but why?
Heretics are not in a good place at the moment, this much is clear. They've been completely disabled on MRP for this reason.
The reasoning is simple: A lot of murder.
There's nothing inherently wrong with an antagonist heavy with murder, but the Heretic really missed the mark.
Gib, gib, gib, then ascend so you can keep killing.
In the background, the Heretic was FULL of flavorful spells, rituals, and "lore" stolen from Cultist Simulator that was unfortunate enough to be shackled to the heretic's gameplay loop.
So, this revamp aims to amend that:
Dial back the heretic's focus on mass murder and put more focus on the heretic's interesting flavor.
Spooky maintenance rituals, knowledge seeking maniac.
Sacrifice no longer outright kills / requires murder, meaning a heretic can progress without racking up a bodycount.
Influence is gained passively over time, so they can spend influence on more interesting side paths.
Side paths are required to progress to ascension, so they're encouraged to explore new things.
Ultimately, while there still may be a little way to go, this PR seeks to take a good leap in starting it.
Changelog
cl Melbert
add: Large scale heretic revamp!
expansion: The Codex Cicatrix is no longer a roundstart heretic item. Research is handled through their antag info UI. Rune drawing is done by using a writing tool with Mansus Grasp active in your offhand. The actual Codex is an unlockable ritual item now.
expansion: The Living Heart is no longer a roundstart heretic item - their actual heart now becomes their Living Heart, and it makes a sound when triggered. Losing your heart (being disemboweled) will require you to do a ritual to regain it.
expansion: The Hereic Antag UI has been overhauled, and now hosts much of their mechanics as well as providing some helpful tips for newer players.
expansion: Most heretic spells now require a focus to cast. All heretics can make a basic focus necklace, and some heretic equipment also functions as a focus. (Credit to Imaginos for the focus sprite!)
expansion: Heretics now passively gain +1 influence every 20 minutes.
expansion: Heretic sacrificing has been reworked. You can now sacrifice people who are in soft crit or weaker. Sacrificing someone heals them, cuffs them, and teleports them to the SHADOW REALM, where they must dodge a barrage of hands to survive. Survive long enough and you return without memory - die, and your body will be thrown back.
expansion: Heretics now have a few new rituals, including the Ritual of Knowledge, a randomly generated ritual that awards knowledge points.
expansion: Heretic ascension now has a few requirements - you must complete your objectives assigned to you prior to learning the final ritual, and all the final rituals have been changed a bit!
qol: Using the Heretic's Mansus Grasp on surfaces (EX: Rust Grasp) now works on right-click, instead of combat mode.
qol: Used heretic influences can now be removed with a Anomaly Neutralizers.
balance: Some heretic rituals are now limited in the amount they can make. You can only have up to 2 heretic blades crafted at once (3 if you are Path of Flesh).
balance: The Lord of the Night has been buffed to be a little scarier. Did you know the Lord of the Night can eat arms to regain body parts and heal?
balance: Buffed some heretic summons - mostly their health pools.
balance: Nerfed the heretic's Mask of Madness. It can no longer infinite stam-crit you.
balance: Nerfed the heretic's ash mark.
balance: Nerfed a bunch of on-hit-heretic-blade effects. Many effects only apply on mark detonation now: Void blade silence, flesh blade wounds, ash blade gasp cooldown refund.
fix: Fixed quite a few bugs and unintended behaviors with heretic code.
refactor: Refactored and improved much of Heretic code. Improved the file structure dramatically.
admin: The heretic's traitor panel has been beefed up a bit.
/cl