* Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344)
Re-pr of #66644 with some changes to get it working

- [x] ~~Huds get cut off~~ Resolved
- [x] ~~Very tall helmets get cut off~~ Resolved
- [x] Hair gets cut off
- [x] ~~Needs optimization before releasing to the world as a pref~~ jk
lol
Look at that fella so cute
🆑 Melbert, That REALLY Good Soda Flavor, FatFat, AndreyGusev
add: Spacemen can now have varying height. (Admin only for now)
add: Dwarfs are now slightly shorter, but look way better.
/🆑
Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
* fix conflict
* clarity
* update rouny
* update screenshots
* Revert "update screenshots"
This reverts commit a5427a5238e574869fe364568b7f043bbd287c79.
* Fixes the dwarf screenshot.
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Adds a new event, "Radiation Leak" (#72655)
Adds a new random event, "Radiation Leak".
A random machine in a random department will begin leaking radiation.
This includes a radiation aura around it, and semi-regular puffs of
smoke clouds containing mutagen and polonium.
The machine will stop leaking after some time, but can also be stopped
by using a random tool on it, indicated in its examine text.
I added a new "radiation emitter" component, for simple "emits
radiation" behavior. Then I made the radioactive mutation use it. This
means that the radioactive gene emits radiation while on stasis and
dead, rather than only in life.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind
* Fixes the conflicts and makes shit compile!
* Fixes other things that didn't show up because I hadn't updated
* Fixes the lints.
* Okay NOW it's ready (please don't add anything else that touches blindness I beg you)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Fire breath properly updates when lacking power chromosome. (#71085)
Basically, if you put a power chromosome in your fire breath and then
lose the mutation and got a new fire breath mutation (without a power
chromosome) you would still retain the benefits of the power chromosome
and could stack it with energetic.
This pr fixes that by reverting to initial values when lacking power
chromosome.
(cherry picked from commit a958d0f4b8)
Co-authored-by: moocowswag <62126254+moocowswag@users.noreply.github.com>
* Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars
* merge conflicts
* adjust_eye_blur and set_eye_blur_if_lower
* adjust drowsiness overdoses
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Psykers (#71566)
## About The Pull Request
Finishes #66471
At burden level nine (or through a deadly genetic breakdown), you now
turn into a psyker.
This splits your skull in half and transforms it into a weird fleshy
mass. You become blind, but your skull is perfectly suited for sending
out psychic waves. You get potent psy abilities.
First one is brainwave echolocation, inspired by Gehennites (but not as
laggy).
Secondly, you get the ability of Psychic Walls, which act similarly to
wizard ones, but last shorter, and cause projectiles to ricochet off
them.
Thirdly, you get a projectile boost ability, this temporarily lets you
fire guns twice as fast and gives them homing to the target you clicked.
Lastly, you get the ability of psychic projection. This terrifies the
victim, fucking their screen up and causing them to rapidfire any gun
they have in their general direction (they'll probably miss you)
With most of the abilities being based around guns, a burden level nine
chaplain now gets a new rite, Transmogrify. This lets them turn their
null rod into a 5-shot 18 damage .77 revolver. The revolver possesses a
weaker version of antimagic (protects against mind and unholy spells,
but not wizard/cult ones). It is reloaded by a prayer action (can also
only be performed by a max burdened person).
General Video: https://streamable.com/w3kkrk
Psychic Projection Video: https://streamable.com/4ibu7o

## Why It's Good For The Game
Rewards the burdened chaplain with some pretty cool stuff for going
through hell like losing half his limbs, cause the current psychics dont
cut it as much as probably necessary, adds echolocation which can be
used for neat stuff in the future (bat organs for DNA infuser for
example).
## Changelog
🆑 Fikou, sprites from Halcyon, some old code from Basilman and
Armhulen.
refactor: Honorbound and Burdened mutations are brain traumas now.
add: Psykers. Become a psyker through the path of the burdened, or a
genetic breakdown.
add: Echolocation Component.
/🆑
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Psykers
* commented out stuff is now in
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Adds chromosome effects to Cryokinesis, Shocktouch, Chameleon, and Webbing mutations. (#71118)
Cryokinesis instability up by 10 (from 20 to 30)
Cryokinesis base cooldown up by 1 second (from 15 to 16) now accepts
energetic chromosomes (8 seconds when applied)
Shock touch instability up by 5 (from 30 to 35) now accepts both
energetic and power chromosomes
Shock touch cooldown up by 2 (from 10 to 12) (cooldown of 6 when
energetic is applied)
If a power chromosome is applied Shock touch does a weak 7500 power
(I`ve seen it hit from 5-7 damage) tesla shock with range of 7 when used
on a viable target (extra damage does not apply to target, no you cant
use it on yourself, no you cant use it on someone that is shock immune,
yes you have to put yourself in harms way to apply the tesla shock.)
(The vars for the tesla shock can be edited by admins for events/abuse)
Chameleon now accepts power chromosomes to fully stealth about 3 seconds
faster.
Webbing now accepts energetic chromosomes
* ty snakebitten
Co-authored-by: moocowswag <62126254+moocowswag@users.noreply.github.com>
* Adds 5 new Heretic spells. Rebalances some aspects of Heretics. Refactors some spells as well, and makes it so emote spells require free hands. (#71044)
## About The Pull Request
- Adds 5 new heretic spells!
- For Flesh: Flesh Surgery. This spell is a touch spell that can either
be used to heal your minions or extract organs from mobs.
- For Void: Cone of Cold. This is a simple spell - it shoots out a cone,
of cold, that freezes and damages people caught in it.
- For Ash: Volcano Blast. This spell functions like Tesla Blast, but
instead of electricity, it shoots out of a beam of fire that hurts to
walk over.
- For Blade: Realignment. Think of this like "Fleshmend but for stuns /
stamcrit". It rapidly regenerates stamina damage and reduces stuns,
while making you a pacifist. It can also be cast in rapid succession,
but this will increase the cooldown.
- For Rust: Rust Construction. Point at a rusted tile, and a wall will
be raised where it was instantly. This even damages people and throws
them aside - Or, if on a multi-z map, can lift up.
- Number of influences has increased.
- 5 at 1 heretic
- 9 at 2
- 12 at 3
- 14 at 4
- 15 at 5
- 16 at 6, and so on
- Heretics are given a 5th sacrifice target, selected randomly. On
average an additional sacrifice is needed for their objectives.
- Being sacrificed grants you a permanent phobia of the supernatural.
Phobia of the supernatural has been expanded to cover heretic items and
mobs.
- The equation for offhand damage of blade heretics was tweaked. Actual
result unchanged, it's just more resilient to future changes now.
- Touch spells were refactored a bit, and overall expanded to be easier
to use
- Charged spells were added, and charged beam spells. Tesla blast uses
this.
- Cone spells were refactored to be easier to setup.
- Jaunting will now hide your runechat when it triggers, to make it less
easy to follow.
- Heretic Ghouls now take less stamina damage based on how low their
health pool is.
- Emote based spells now require hands to be unblocked to be cast, like
mime spells.
- Yes this gets rid of handcuffed invisible walls... Not 100% on this,
but I figured it's good for consistency? Open to discussion
## Why It's Good For The Game
A lotta feedback has passed through about heretic and it's time to
address some of it
- Problem: Not enough cool flash spells. Makes Focus not worth it.
- Solution: Adds some more spells to encourage focus use.
- Problem: Sacrifice targets being too willing or not harmed enough
- Solution: A permanent trauma.
- Problem: Not enough ways to power up.
- Solution: Adding more influences around, though I think there should
be more variety in knowledge rituals as well.
- Problem: Ash Passage sucks
- Solution: Makes it a smidge better to stay hidden with it.
- Problem: Heretic Ghouls get one hit by batons
- Solution: Stamina modifier should put them on par with unmodified
humans.
## Changelog
🆑 Melbert
add: Added five new heretic spells, one for each path. They come after
the Ritual of Knowledge.
add: Cone of Cold, for Void heretics. Shoots out a freezing chill in a
cone which deal damage and freezes.
add: Flesh Surgery for Flesh heretics. A touch spell which can either
heal minions or be used on mobs to extract organs without surgery.
add: Volcano Blast for Ash heretics. A beam spell, like Tesla Blast,
which fires out a beam of fire that bounces between people.
add: Realignment for Blade heretics. Fleshmend, but for stuns and
stamina damage. Makes you a pacifist, but rapidly regenerates stamina.
add: Rust Construction for Rust heretics. Places a wall of rust on the
target rusted flooring. Can even be used to ascend z-levels!
balance: Nerfed the cooldown of Cleave slightly, buffed the cooldown of
Lesser Cleave slightly.
balance: Slightly more influences will spawn on the station per heretic.
balance: Heretics require an additional sacrifice on average for
ascension, but are given a fifth sacrifice target (randomly selected).
balance: Being sacrificed by a heretic now gives you a permanent phobia
of spooky things, including heretic mobs and items.
balance: Heretic ghouls now take reduced stamina damage, depending on
how small their health pool is.
balance: Using Jaunts will conceal your runechat for their duration.
balance: Spells which require emoting (Mime spells) require your hands
not be blocked to use.
refactor: Touch Spells were improved a bit. Added some new template
spells - Charged spells, and Charged beam spells.
fix: Fixes a runtime from losing heretic.
/🆑
* Adds 5 new Heretic spells. Rebalances some aspects of Heretics. Refactors some spells as well, and makes it so emote spells require free hands.
* MIRRORS tgstation/tgstation#70561
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Splattercasting, an offensive, sanguine equivalent to Lichdom. (#70637)
A spell similar to lichdom, though with different conditions.
Dramatically reduces your cooldowns
Cooldown saved is converted into blood lost
You are now a vampire, drinking blood refills your bloodwell, and you're naturally slowly running out.
New school, Sanguine spells, which aren't affected by splattercasting and generally involve blood.
Species change allowed by @ SuperNovaa41
* Splattercasting, an offensive, sanguine equivalent to Lichdom.
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fix xeno hivemind talk causing hissing sound (#69844)
* Fix xeno hivemind talk causing hissing sound
* Fix dullahan speech arg
Add message_range and saymode to say arguments
Add new say args to other say procs
Add new say args to other say procs
* Revert "Fix dullahan speech arg"
This reverts commit abff2bec1a03c1270b2896faa547c465e046ad78.
* Fix speech_args to be list
* Refactor hulk speech signal handler
* Revert "Revert "Fix dullahan speech arg""
This reverts commit 58997930096ef6b7fa8a1c79395595e61db954c6.
* Change filterproof to be null like other say procs
* Remove unused COMSIG_MOB_SAY defines
* Readd defines for COMSIGH_MOB_SAY
* Fix xeno hivemind talk causing hissing sound
* Updates the arguments of the say and whisper procs for the borers
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Completely refactors hallucinations, and also adds a few
* delete 5 old hallucination types that should have been removed
* Fixed old leftover tips conflicts
* Fixes all the leftover conflicts and otherwise broken code
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Make hulks orkier (#69469)
RED WUNZ GO FASTA
🆑oranges
balance: orks no longer shout their attacks over the radio
/🆑
* Make hulks orkier
Co-authored-by: oranges <email@oranges.net.nz>
* Small organ code clean up (#69123)
* Cleans up organ code, removing the EXTERNAL_ORGAN flag, as it can just simply use the external organ subtype instead
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@ users.noreply.github.com>
* Small organ code clean up
* Update taur_types.dm
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Replaces the mood component with a mood datum
* Fixes merge conflicts and updates all of our mood events to use the new mood datums
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* People with epilepsy now have a chance to have a seizure when they're flashed! (#68845)
Gives folks with epilepsy a 30% chance of having a seizure when they're flashed
* People with epilepsy now have a chance to have a seizure when they're flashed!
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes / Refactors Void Magnet (#68588)
* Fixes void magnet by improving its code
- When I refactored proc holders, I accidentally changed void magnet to do a `locate() in mob`, isntead of `locate() in mob.actions`, which broke void magnet.
- But I also took the opportunity to improve a code a bit. Instead of working on mutation `on_life()`, it instead is entirely handled by the action itself. Encapsulation, and also gets us closer to possibly removing mutation `on_life()` from life code.
* Fixes / Refactors Void Magnet
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes Thermal Vision mutation having 1/10th the duration (#68350)
A missed SECONDS define causes Thermal Vision to have 1/10th the intended duration.
* Fixes Thermal Vision mutation having 1/10th the duration
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Completely removes `proc_holders` from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code.
* our changes
* yes
* 0
* Update blackmesa.dmm
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Add dyslexia (illiteracy quirk) as a genetic mutation and disease symptom (#67388)
* Add illiteracy to genetic mutations
* Add illiterate dna injectors
* Add illiteracy effect to confusion symptom
* Fix missing comma
* Change illiteracy to use resistance for confusion
* Fix disease unit test failures
* Refactor var names for confusion symptom
* Add dyslexia (illiteracy quirk) as a genetic mutation and disease symptom
Co-authored-by: Tim <timothymtorres@gmail.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Refactors the forensics component into a datum
* Refactors the forensics component into a datum
* Refactors the forensics component into a datum
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Clever Mutation (#66650)
Basically, the Pull Request just adds a new trait that allows for mobs that might otherwise not be able to do stuff like use computers, do surgery or interact with PDAs to do so. Primarily aimed at monkeys, though there may be other mobs that this could be useful to as well.
* Clever Mutation
Co-authored-by: Sneeker134 <53362182+Sneeker134@users.noreply.github.com>
* Refactors firestacks into status effects (#66573)
This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.
Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.
Also changed some related proc names to be snake_case like everything should be.
This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing
* Hud Image Culling By Z Level: Theft edition (#65189)
* makes hud images only apply by z level
* makes some of the atom_hud procs have better names
* fixes warning with the hud_user list and adds better documentation
* better docs for hud_images
* removes TODOs
* docs for hud_list
* adds support for linked z levels so mobs can see lower ones
* fixes merge conflict and shittily makes only shocked airlocks get added
* adds support for setting images in the hud as active and inactive
* gets rid of unatomic spatial grid change
* maybe i should actually try COMPILING my changes
* fixes merge skew and makes it compile again
* fixes huds refusing to remove from users who changed z level
* improves z level and registration logic
* fixes antag huds not appearing
* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me
* Ensures that hiding a basic appearance also hides the atom's active list too
* Fixes antag huds going poof
Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it
This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.
Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.
* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list
* fixes mistake with hud_users list being set non associatively (bad)
* as anything in bot path loops
* Fixes merge skew problems
* Makes bot paths non global
This way they can show themselves to only the bot that "owns" them, ya
feel me?
* Fixes huds not showing up sometimes, cleans up some code
Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:
call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen
*cries*
* Renames add_hud_to_atom to show_to
My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars
* remove_hud_from_mob -> hide_from
* Nitpicks a few comments
* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh
* Moves check down, improves stack trace a bit
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* small touch-up
* this should do it
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
* Refactors speech impeding effects (drunken slurring / suttering) into status effects. Adds heretic slurring in addition to the existing cult slurring. Removes 4 vars from /living in return, which slightly optimizes Life() (wink)
* fex
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Refactor and improve antimagic to be more robust (#64124)
This refactors the antimagic component to use and have bitflags, documentation, defines, code comments, named arguments, and renames variable names for clarity.
- /obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult is not used anywhere and has been removed
- /obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult is not used anywhere and has been removed
- New sound effects are played when magic is blocked. Depending on the type of magic being used it will be either:
- Equipping antimagic now properly updates the magic buttons
- Any magic being blocked or restricting casting now displays a message
- MAGIC_RESISTANCE_MIND now properly blocks telepathy effects
- Removes blood splatter when fireball is blocked
- Magic projectiles for staff of locker no longer spawn lockers when blocked by antimagic
- Fire breath is no longer blocked by antimagic
- Spellcards are now blocked by antimagic
Any antimagic on a mob blocks that magic type from being casted. (certain spells such as mime abilities completely ignore antimagic)
- Foilhats prevent someone from casting mind magic (telepathy, mindswap, etc.)
- Bibles, ritual Totems, nullrods, holymelons, and TRAIT_HOLY prevent someone from casting unholy magic (cult spells, etc.)
- Nullrods, ritual totem, and holymelons prevent someone from casting wizard magic (fireball, magic missile, etc.)
- Immorality talismans, berserker suits, and TRAIT_ANTIMAGIC prevents all types of magic (except stuff like mime abilities)
- Touch of Madness and Mindswap is now blocked with MAGIC_RESISTANCE and MAGIC_RESISTANCE_MIND
- Voice of god is now blocked with MAGIC_RESISTANCE_HOLY and MAGIC_RESISTANCE_MIND
* Refactor and improve antimagic to be more robust
* Update tiedshoes.dm
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fixes unarmed telekinesis breaking chameleon. (#65505)
Apparently whoever implemented the signal handler forgot to pass the signal source so it was reading the thing clicked on as whether the thing clicked on was adjacent. As datums are truthy this resulted in all clicks breaking chameleon.
* Fixes telekinesis breaking chameleon.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Fire breath can be used without the ability to speak (+ code improvement) (#64796)
* fire breath can be done without the ability to speak + SPELL code improvement
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>