* Implements a Demolition Modifier variable to items, affects damage vs structures and robots. (#66967)
Adds a modifier variable which can be used to increase or decrease a given items damage to structures, machinery, vehicles, and robots (including cyborgs, simple-bots, and anything else with the MOB_ROBOTIC biotype)
* Fixes attacks on mech equipment ignoring armor / melee damage, also fixes mech equipment not being disabled at 0% health, also also unit tests mech armor (#67411)
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.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>
* surplus prosthetics have correct sprites now (#67450)
they only set icon not static icon, static icon is what is used to get the limb icon
* surplus prosthetics have correct sprites now
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fixes most eye color effects not working (#67127)
* Fixes most eye color effects not working, adds eye refreshing to species' handle_body.
* Fixes most eye color effects not working
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* [NO GBP] Jetpack and spacedrift: Fixes and niceties (#66628)
* Jetpack and spacedrift: Fixes and niceties
Ok so when I ported spacemovement onto movement loop,
I neglected to port this behavior that existed to support jetpacks.
Basically, if something that lets you move while spacedrifing
completes a move while you're spacedrifting, the
drift should "disable" to let it complete, and then later restart.
I neglected to add support for that, so that's what this does.
There's some other stuff going on here, mostly things to let jetpacks
ignore some of drift's extra behavior, since when a jetpack is not on
stablized, we want both to coexist.
It's a bit of a mess, I'm sorry about that.
Oh and at temporal's suggestion I've moved the visual_delay set from
newtonian move to an istype on the drift component, that was a good
idea, thanks quiet
* Makes dropping a pull while drifting carry the momentum into the pulled thing\
* Adds some extra context to Process_Spacemove, fixes a bunch of stupid
space bugs
It used to be, if you called Process_Spacemove with a direction, it
assumed you were an "action", so a client or mob trying to move in a
direction.
Unfortuantely for it, I needed to be able to use direction to make mob
pull drifting work. So we now actually pass in a second variable
called continuous_move, which tracks if this Process_Spacemove is on
behalf of a continuous move or not
In addition to this, I've added logic to bumping "off" someone to
prevent backbumping if that makes sense, since the bump is in the form
of a newtonian move that's run before the thing that's bumping actually
moves, we need some way to exclude it from holding the other object in
place.
* Adds a jetpack component, uses it to unify all three versions of
jetpacking
I hate you fikou
There were three copies of the same behavior, which made it hard to fix
stuff. Let's just componentize it
* Fixes jetpacks stabalizing even without fuel
This is mildly hacky. The real fix is to do this with events, but I
really don't wanna bend my brain like that. This'll do
* Ensures turn_off always has a user)
* Shut pu
* Bulky drags no longer effect your movespeed in space, fixing a consistency issue between them and all other forms of drags
* Removes some redundant code, cleans up some messy stuff
* Removes redundant safety checking from jetpack code
* see above
* Removes redundant signals
* [NO GBP] Jetpack and spacedrift: Fixes and niceties
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Advanced tools are medium sized, toolboxes can carry medium sized items. (#66900)
* Advanced tools are medium sized now.
* Moves `w_class` 1 line down
* Moves `w_class` MORE DOWN
* Syndie Jaw pocket edition.
* Toolboxes can carry medium items, pocket syndie jaw in desc.
* Advanced tools are medium sized, toolboxes can carry medium sized items.
* fix APT
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* External organs can now contribute bodytypes to their owner (#66704)
* Fixed part of our snout code, to account for special snouts that do not give you the snouted bodytype
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.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>
* Improper forced qdel cleanup, some expanded del all verbs (#66595)
* Removes all supurfolus uses of QDEL_HINT_LETMELIVE
This define exists to allow abstract, sturucturally important things to
opt out of being qdeleted.
It does not exist to be a "Immune to everything" get out of jail free
card.
We have systems for this, and it's not appropriate here.
This change is inherently breaking, because things might be improperly
qdeling these things. Those issues will need to be resolved in future,
as they pop up
* Changes all needless uses of COMSIG_PARENT_PREQDELETED
It exists for things that want to block the qdel. If that's not you,
don't use it
* Adds force and hard del verbs, for chip and break glass cases
respectively
The harddel verb comes with two options before it's run, to let you
tailor it to your level of fucked
* Damn you nova
Adds proper parent returns instead of . = ..()
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Ensures immortality talismans cannot delete their human if something goes fuckey. Thanks ath/oro for pointing this out
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Improper forced qdel cleanup, some expanded del all verbs
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
#65523 made some changes to bodypart names that messed with the grammar of a few messages around the codebase by inserting the species of a bodypart where it's really not needed. For example:
For most general combat/health cases, we don't need to worry about the species of a bodypart. So, this changes combat and wound messages back to simply displaying the relevant bodypart zone being attacked/affected. See below:
dreamseeker_2022-04-10_02-05-55.png
Let me know if I missed any!
Why It's Good For The Game
Better grammar
Changelog
cl Ryll/Shaps
spellcheck: Wound and combat messages will no longer mention the species of an attacked bodypart when not appropriate
/cl
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Fixes hair and facial hair not blocking emissives as they should (#66527)
* Fixes hair and facial hair not blocking emissives as they should
* Using properly-defined hair_alpha rather than relying on alpha values that are bound to change
* Fixes hair and facial hair not blocking emissives as they should
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Helium makes your speech small (#66581)
Remake of #66165 because I messed my repo up. Makes text small when helium is breathed in.
Why It's Good For The Game
A small fun interaction with helium
Changelog
cl
add: Breathing helium now makes your speech small
/cl
* Helium makes your speech small
Co-authored-by: SnoopCooper <aasmundsaether@gmail.com>
* Makes lavaland air pressure always high enough for wings to work (#66068)
* Wings require 31 or higher to work
* revert and then ill do the other thing
* This is going to get undone by #66075 and have to be readded pain
* does that thing I said I would do
* Kylerace Commit
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Kylerace "Kylerace Commit" Fix Commit
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Makes lavaland air pressure always high enough for wings to work
Co-authored-by: Bond <58570888+TheBonded@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
* Fixes some improper balloon alerts, adds a grep to prevent future bad balloon alert calls (#66214)
* Fixes some improper balloon alerts, adds a grep to prevent future bad balloon alert calls
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Makes the blood filter not suck so much (#66325)
Adds a whitelist to the blood filter, you can use it in hand to bring up a UI similar to the plumbing filters. When using the blood filter for surgery it will only filter out chems in the whitelist, unless the list is empty in which case it will filter all chems.
Makes the surgery loop until all filterable chems are removed, similar to tend wounds.
Holding a health analyzer in your off hand while using the blood filter will display a chem scan of the subject after each surgery step similar to tend wounds.
* Makes the blood filter not suck so much
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
* Surgery sound fix attempt 2 (#66018)
When performing surgery steps that require a saw, using ghetto tools would play the saw.sound despite the tools not having any motors. This pr fixes that and adds some framework for future conversion of preop_sound to list() for fixing future similar cases
* Surgery sound fix attempt 2
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
* snailshouse
* taste
* last hurdle hopefully
* small sprite change
* shellllll
* so called free thinkers when they properly document their skyrat edits
* one last job.
* Fixing runtimes??
* wew
* yes
* you should listen to Landlord - Yot Club it's pretty good
* holy shit i look like such a clown w/ these commits
* WEW
* metal gear rising redefined
* let's kick shell
* we might be onto something
* last thing
* Fifty years have passed, but I do not age. Time has lost its effect on me. Yet the suffering continues. Aku's grasp chokes the past, present, and future.
* wew
Co-authored-by: Snakebittenn <12636964+Snakebittenn@users.noreply.github.com>
Co-authored-by: nevimer <foxmail@protonmail.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>
* sprite change
* oops
* forgot
* pain
* l i m b s w o r k
mutant bodypart commit soon™️
* comments
* Comment typo *sigh*
* fixes runtimes
* fixes invisible detached limbs
* comments + modular file
* forgot to include
* ternerify statements
* AAAAAAAA
* Zauker refactor (attempt 2) (#65826)
Zauker currently perform its effects on breathe in lungs.dm which I've been informed is quite unreliable compare to chem. Changes it to perform its effect via chem.
* Zauker refactor (attempt 2)
Co-authored-by: FinancialGoose <92416224+TheBoondock@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>
* Revives "Adds sound effects to surgeries" (#65578)
* Adds surgical sounds
Rough implementation as I don't have too much time tonight.
* Fixed falure_sound
Fixed a typo
* Removed the lists
Removed the lists and added sounds to revival surgery, stuff will probably break
* Fixes the playsounds still using pick
* Added sounds to more surgeries
Added sounds to four more surgeries
* Revives "Adds sound effects to surgeries"
Co-authored-by: nmajask <nmajask@gmail.com>
* Fixes being able to use revival surgery on blacklisted defib victims (#65544)
Just added a check to revival surgeries' can_start
* Fixes being able to use revival surgery on blacklisted defib victims
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>