* Spider Rebalance PR: Burn Baby Burn Edition (#68971)
This is a remake of #66106, with more thought put into the underlying balance. The main goal of this PR is to make fighting spiders more accessible and interesting for the majority of the crew while nerfing the extremely strong and boring option of simply using freezing temps to kill spiders. Also fixes#67765. The changes are as follows:
NEW SPIDER COUNTERS
Fly swatters now deal 25 damage to spiders on hit, increased from 1
Pesticide now deals massive stamina damage to spiders and a little bit of physical damage as well (the damage portion not added by this PR)
Spiders can now be caught on fire through any traditional mean of catching something on fire. Spiders will automatically put themselves out after a time. This was done instead of an active action because AI spiders are also subject to this change as well, and I don't feel like bloating the simple mob AI with putting themselves out
SPIDER CHANGES
NERFS
Toxin injection has been removed from all spiders except for the hunter, flesh spiders and the viper
Hunter toxin (used by hunters and flesh spiders) now only brings the afflicted down to 40 health, and will stop taking effect once the afflicted reaches that threshold. Should the afflicted still have the toxin in their system and get healed, the toxin will begin dealing damage again until the afflicted is at 40 health or below again
Viper toxin now only brings the afflicted down to 10 health, but also has the hallucination effects of Mindbreaker toxin. This hallucination effect is applied regardless of target health. It also no longer generates other harmful chemicals into the afflicted's system, but is much more potent at base
Flesh spiders cannot regenerate while on fire
BUFFS
Time it takes for spiders to normalize their temperature cut by half. While they will react faster when in cold or hot environments, when they leave said environments it will take less time to return to normal temperature
Unsuitable temperature damage reduced to 4 from 8
You can no longer push spiders by running into them
Webbing heat damage threshold increased from 300 to 350 (same temp where spiders also take damage)
Broodmother egg laying time reduced to 12 seconds from 15
Broodmother web laying time multiplier reduced to 0.5 from 1
Broodmother health increased to 60 from 40
Broodmother damage increased to 10 - 15 from 5 -10
BEHIND THE SCENES CHANGES
You can now make any simple mob able to be caught on fire by setting flammable to true
How fast a simplemob stops burning is controlled by fire_stack_removal_speed
Can now now control how fast simplemobs regulate their temperature using temperature_normalization_speed. Before this PR, this value was hard-coded at 10, I have set the default to 5 as 10 was too long in almost any case. This will notably affect slimes, who could easily die to being cold long after being removed from the cold area. I see this as purely beneficial
Toxins now have a health_required value. The afflicted has to be above this health value in order to take damage from the toxin. Only used in the spider toxins currently
When I was setting up simplemobs to be flammable, I noticed basic mobs can be glitchily set on fire, so I fixed it to where they can't be set on fire.
Why It's Good For The Game
Spacing something is very easy, but not very fun or interesting compared to starting and controlling a fire. Swapping spiders' temperature weakness from spacing to fire is beneficial to the fun of fighting them and playing as them, allowing more creativity and resourcefulness on both sides. Ideally, this should allow for atmosians and chemists to use their skills in a fun way.
Currently, ignoring spacing them, the only people who can reasonably take on spiders is security, since they have lasers which do burn and stuns to slow the spiders down. However, this small subset of players cannot normally destroy a spider infestation without spacing them, so letting fly swatters and pesticide be used to combat spiders allows other crewmembers to fight back, letting them actually enjoy facing spiders as a threat and allowing the crew to defend themselves.
Being killed by spider toxin after fighting off a horde isn't fun. The changes still make it a threat you have to be aware of, but not one which detracts as much from the combat loop. This also forces spiders to secure the kill themselves, which is more fun than having the toxin do it for you.
Broodmothers in their current state are incredibly weak by themselves, which is intentional by design. However, the new changes hope to make playing as a broodmother easier and hopefully allow more broodmothers to get the spider infestation started properly. After all, Dynamic is their common source now, and they should be consistently worth the threat cost to spawn them.
Previously, spider structures would seemingly vanish for no reason if the room was heated to be greater than 300 but less than 350, as the spiders would not be able to tell that it was too hot. Now, if the structures are taking damage, spiders will also be taking damage, so understanding what's going on should be easier now.
Pushing spiders into a corner by running into them was not a fun tactic to deal with as a spider and didn't make much sense seeing how big the spiders are.
Changelog
cl
add: Spiders can now be caught on fire
add: Spiders take significant damage from fly swatters and stamina damage from pesticide
balance: Spiders have been re-balanced. Their toxins can no longer kill but they are not as susceptible to freezing
balance: General stats of spider broodmothers have been buffed with more health, damage, and faster web and egg placement
balance: Flesh spiders cannot regenerate whilst on fire
balance: Simplemobs change their internal temperature twice as fast
fix: Basic mobs no longer glitchily catch on fire.
/cl
* Spider Rebalance PR: Burn Baby Burn Edition
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* Fixes some issues with deafness & earhealing (#69136)
1- Replaces checks for deafness as a clothing trait, since clothing traits' have a ref to themselves in the source
2- Makes ear healing not NOT heal if you're above 0 ear damage, because that's the point of fixing your ears?
* Fixes some issues with deafness & earhealing
Co-authored-by: John Willard <53777086+JohnFulpWillard@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>
* 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>
* Fixes a runtime when inflicting a blunt wound on an armless human (#68030)
fixes a runtime when inflicting a blunt wound on an armless human
* Fixes a runtime when inflicting a blunt wound on an armless human
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* 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>
* Fixes Novaflowers not lighting people on fire, again. Unit tests it. Cleans up some unique plant genes stuff too. (#67597)
* Fixes Novaflowers not lighting people on fire, again. Unit tests it. Cleans up some unique plant genes stuff too.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes jitteriness stacking up to insane amounts while dead (#67567)
* Jitter effect doesn't apply to dead people
* in apply, instead of create
* Fixes jitteriness stacking up to insane amounts while dead
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes the stasis ripple not playing in a loop and the unusually-slow stasis bed lying down animation (#67403)
* Fixes the stasis ripple not playing and the slow stasis bed lying down animation
* Actually makes the ripple start after the lying down animation is over
* Fixes the stasis ripple not playing in a loop and the unusually-slow stasis bed lying down animation
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* [NO GBP]Fixes stopping, dropping and rolling not extinguishing your clothing (#67096)
* Resisting out of fire now makes your clothes stop being on fire, too.
* [NO GBP]Fixes stopping, dropping and rolling not extinguishing your clothing
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Change healing by sleeping to be affected by sanity, darkness (or blindfold), and earmuffs. (#65713)
About The Pull Request
Depending on the mob's sanity level, it can have a positive or negative boost to healing effects while sleeping. Sleeping in darkness, wearing a blindfold, and using earmuffs also counts as a healing bonus. Beauty sleep is very important for 2D spessmen.
Why It's Good For The Game
This is a small gameplay change that rewards players for keeping their sanity at good levels. Also depression has also been linked with impeding wound healing in real life. The placebo effect on peoples minds is strenuously documented and I think it would be cool to see it in the game.
Changelog
cl
expansion: Healing by sleeping is now affected by sanity, sleeping in darkness (or using a blindfold), and using earmuffs. The healing from sleeping in a bed was slightly decreased.
/cl
* Change healing by sleeping to be affected by sanity, darkness (or blindfold), and earmuffs.
Co-authored-by: Tim <timothymtorres@gmail.com>
* Change drunk blur effect to scale by intoxication (#66961)
* Change drunk blur effect to scale based on intoxication
Co-authored-by: Tim <timothymtorres@gmail.com>
* Fixes multiple orbiting blades being used at once (#66817)
Multiple orbiting blades will no longer be used to protect you from the same attack in case you have multiple instances of the status effect
* Fixes multiple orbiting blades being used at once
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* fixes dizziness causing hard crashes (#66861)
this pr fixes dizziness causing hardcrashes and sending your view 50 tiles in both x and y
* fixes dizziness causing hard crashes
Co-authored-by: MacBlaze1 <33578623+MacBlaze1@users.noreply.github.com>
* Fixes "high blood pressure" status effect, and corrects the spelling of "opioid" (fixing another bug) (#66849)
Status effects that are intended to be added, are actually added.
Opioid is now spelled correctly, consistently.
This actually caused a bug: Opioid end_withdrawal was never called because it's path was spelled correctly and the others weren't.
* Fixes "high blood pressure" status effect, and corrects the spelling of "opioid" (fixing another bug)
* wew
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Separates regenerative core and wounded alerts (#66794)
This has been bothering me for ages, it doesn't make sense for wounded and regenerative core status effects to have the same icon and in the original PR author said that he didnt put regen core into the icon instead of the skull because he didnt want wounded status effects to have the regen core as its icon, so here you go. Wounded effects still keep their skull while regen cores have proper sprites.
* Separates regenerative core and wounded alerts
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Converts drunkness and dizziness to status effects. Refactors status effect examine text (and, subsequently, stabilized black extracts). (#66340)
* Refactors dizziness into a status effect
* Refactors the dizziness setter to use the new kind
* Drunkness.
- Should drunk continue to work off of a magic value or be swapped to duration? I've not yet decided: For understandability it's preferabale for "drunk" to use a timer (they are drunk for 3 more minutes), but both adding drunk and decreasing drunk currently use weird calculations which would be difficult to carry over.
- Ballmer is a liver trait
* Dizzy was a setter, not an adjuster
* Does all the drunk effects over
- refactors examine text fully
- refactors stabilized blacks because of this
* Removed
* repaths, fixes some issues
* Minor fixes
* Some erroneous changes
* Fixes some dizziness errors
* Consistency thing
* Warning
* Undoes this change, I dont like its implementation
* max_duration
* Max amount
* Should be a negative
* max duration
* drunk doesn't tick on death
* Rework dizziness strength
* Erroneous dizzy change
* Fixes return type
* this should do it?
* well, one more
Co-authored-by: MrMelbert <51863163+MrMelbert@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>
* Adds some sanity to the blade heretic's mark effect (#66572)
Blade Mark no longer allows you to throw people out of the area
If the mob ends up completely outside of the marked area, they will no longer be burdened by being locked to a room they are no longer within
Heretics can drag blade-marked mobs out of the room they're locked within
Forced movement is no longer blocked by the mark (just in case)
The mark now throws a bit further back into the area + throws gentally
Heretics can't accidentally lock their abduction target in a room
Heretics can't get owned by a bodythrow
Prevents some bugs and rare cases where people can escape the room they're locked to
Managing to escape the area of a blade heretic's mark will no longer constantly burden you as if you never left.
There should be less ways of escaping the area of a blade heretic's mark now.
Heretics can drag people marked by a blade heretic out of the area they are trapped within.
Being thrown back by a blade heretic's mark will be slightly less awkward now, and less dangerous.
* Adds some sanity to the blade heretic's mark effect
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Eigenstasium overdose effect lines now use a strings file (#66579)
A simple little code improvement that makes eigenstasium lines into a strings file.
Cleans up eigenstasium effect code, and also opens up the possibility to use the new strings file for much more dynamic lines.
* Eigenstasium overdose effect lines now use a strings file
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Nullwave Vibrato now works as intended (fix and balance) (#66418)
* Nullwave Vibrato now works as intended (fix and balance)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Converts drugginess to status effect, striking another var processed on life() (#66331)
* Changes drugginess to an effect
* Missed some changes
* Removed
* Converts drugginess to status effect, striking another var processed on life()
* wew
* 0
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Auto-docs + code improvements + splits up status_effect.dm (#66362)
* Code improvements for status effects in general
* Does this for now
* Throws in a qdeleted check
* A return
* comment tweak
* Missed some ref()s
* Wrong var
* Comment clarifications
* Some more comment clarifications
* Auto-docs + code improvements + splits up status_effect.dm
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.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>
* Adds mob bleeding overlays, tweaks some bleeding balance
* Fixed the various merge conflicts involved with this, added update_wounds_overlay() in hopes that it just works
* Fixed our non-updated slash wounds bleeding values
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Allows you to offer an item to only one person with Shift+Ctrl+Click (#65441)
You can click someone directly with shift+ctrl+click to offer an item only to them. This is in contrast with pressing G, which offers the item to every adjacent carbon mob.
Also fixes a runtime where the Give screen alert on a potential recipient was trying to remove itself on proximity loss after the Offering status effect had already done it.
Removes duplicate range check on Give screen alert that was causing the runtime as Offering status effect takes care of it.
Also adds a check after clicking the screen alert to take something to make sure we're not dead or incapacitated, so dead people can no longer take things.
Also adds a screentip for this functionality.
Also adds some more checks to give() to make sure we can do it before sending the message to players that we're offering something.
* Allows you to offer an item to only one person with Shift+Ctrl+Click
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* Makes discoordinated a status effect (#65278)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Makes discoordinated a status effect
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Makes Ants glow, puts a minimum on ant screaming and shoe permeability, and other ant-related things. (#64786)
I found out how emissives work and my first thought was "damn ants should glow that would look sick"
So now they do.
Also, having less than 5u ants in your body will make you not scream, so 0.0001u ants will no longer have that tiny chance of making someone scream for their life.
If an ant pile has a max damage value less than 1, then they won't be able to bite through your shoes. This is the same threshold as the second tier ant icon.
Makes the giant ant a hostile mob with the neutral faction, meaning they will attack anything not in the neutral faction.
* Makes Ants glow, puts a min on ant screaming & shoe permeability, & other ant-related things.
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Fixes heretic's ash mark (#64699)
Fixes#63605, meaning ash mark now does 50 stam and 25 burn damage on the first hit, decreasing by 10 stam and 5 burn with each hit, down to a minimum of 10 stam and 5 burn from the 5th hit onwards.
Also makes the bounce target of the mark random, preventing it from getting stuck bouncing between the same two players forever.
* Fixes heretic's ash mark
Co-authored-by: GoblinBackwards <kinggreenyoshi@gmail.com>
* Removes IAA & IAA pinpointer code improvement (#64008)
Since the gamemode isn't wanted here, even just to maintain (and especially now that progression Traitors are being added which will break IAA even more), I'm gonna give my alternate idea to just remove IAA entirely.
This is also to help downstream, as any plan on just 'adding it downstream' is kinda screwed over by it TECHNICALLY still being upstream, and its code conflicting with my own, even if it is just broken and unmaintained.
* Removes IAA & IAA pinpointer code improvement
* Removes IAA & IAA pinpointer code improvement
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>