* 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>
* Deadchat control alerts ghosts when they can input another command (#66621)
Makes it so deadchat control alerts ghosts when they can input another command. Also rounds the seconds values in the to_chat messages for deadchat control up, so they don't have a decimal point.
You don't have to keep trying to input something to see if the cooldown has expired yet. Removing the decimal point looks cleaner.
* Deadchat control alerts ghosts when they can input another command
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
its a list where we continued if the person was NOT in the whitelist, it continued to the next, so it broke if there was a drone nearby, instead of breaking when there was a human enarby or whatever
fixes#66577 (Station Drones aren't allowed to interact while near another Station Drone)
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fix explodable component attack targeting check to be in line with the comment (#66483)
* Fix explodable component attack targeting check to be in line with the comment.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Adds a scope component, removes old zooming and adds sniper marksman ammo. (#66218)
Removes the old sniper rifle zoom, replaces it with a scope component. the scope activates on right click and lets your camera follow your mouse.
https://streamable.com/2c63u4 (due to byond rounding some shots were weirdly missed in that video, its fixed now)
Also adds sniper marksman ammo to the nukie uplink. It does slightly less damage, but it is hitscan and has one guaranteed ricochet shot, so you can shoot a wall and it could still hit someone.
* Adds a scope component, removes old zooming and adds sniper marksman ammo.
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fix putting plasma cutter blowing you up if you have plasma equipped. (#66485)
loops through possible places when you try to put an item in. If you happen to be holding a plascutter which is hot, its gonna try to insert it into the plasma stack and blow you up.
* Fix putting plasma cutter blowing you up if you have plasma equipped.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@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>
* Vim mecha changes (#66153)
This PR changes the following:
fixes a bug with Vim overlays, making it always appear as if there was a pilot inside, even after leaving it
adds a balloon alert when a mob fails to enter the mech due to its size
adds a crafting recipe for Vim in the "robots" category
allows using Vim as a circuit shell
allows small mobs to use the mech as well
My reasoning behind the changes:
fixing the overlay bug - bugfixes good, bugs bad
balloon alert - it should help reduce confusion among players who can't figure why on earth they cannot enter the mech
crafting recipe - I think a crafting recipe will make it a lot more accessible to players, especially because there is no way to learn about its existence in-game
circuit shell - non-standard circuit shells can be pretty fun and people seemed to enjoy the ability to use circuits inside their piano synths or cameras, so I figured we could expand on this, while giving players more ways to interact with sentient pets
maximum mob size increase - Vim has never really been built too often, most likely because even if people got their hands on a sentient pet, it wouldn't probably fit in the tiny mecha anyway. Currently pretty much only butterflies, rats and cockroaches can use Vim and they pretty much never become sentient.
* Vim mecha changes
Co-authored-by: B4CKU <50628162+B4CKU@users.noreply.github.com>
* Fixes uplinks duplicating tc (#66266)
About The Pull Request
Fixes an infinite TC glitch with uplinks
Why It's Good For The Game
Prevents traitors from generating an infinite amount of TC
Changelog
cl
fix: Fixed traitors being able to duplicate their TC
/cl
* [s] Fixes uplinks duplicating tc
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Makes slapping people trigger gloves of the north star (#66020)
* Rapid slapping when using gloves of the north star
* Correct define value
* Makes slapping people trigger gloves of the north star
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
* Fully documents _sound_looping.dm and adds the variables it was missing to allow for full sound customizability (#66215)
* Fully documented _looping_sound.dm and added three missing variables to it, arguments that are for playsound()
* Fixed geiger's `get_sound()`
* Fixed a variable name in area_sound_manager.dm
* Fixed some trailing tabs in firedoor.dm
* Fixed a variable name in robot_model.dm
* Did some formatting improvements to machinery_sounds.dm and set telecomms and the gravity generator as sounds that will no longer ignore walls
* Fully documents _sound_looping.dm and adds the variables it was missing to allow for full sound customizability
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* makes grilles grill food, not drinks/condiments (#65833)
When food was moved to newfood (and use an edible component), drinks and condiments were left both as subtypes of a no-longer-existant food. (Even worse, one isn't even a subtype of the other).
Grilles were not updated to make the edible component's foodtypes fried, instead they kept making old food (which again, is just drinks and condiments) get the grilled foodtype instead, so it likely just runtimed and didn't work at all.
This most probably wasn't caught because all the vars for the edible food component were all kept the same when they were created off of old food, even the procs. Edible component is a copy paste of drinks/condiments.
Less runtime errors, more grilling!
* makes grilles grill food, not drinks/condiments
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Fixes diggable turfs being diggable with any item (#66099)
Fixes a check for if an item behaved as a shovel in the diggable component where it was returning true regardless of the item used.
* Fixes diggable turfs being diggable with any item
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@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>
* [NO GBP] Resolves Golems not being allowed in the areas they created (#66000)
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* [NO GBP] Resolves Golems not being allowed in the areas they created
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Feex (#65612)
Splits reagent log string creation to a standard proc and a bespoke stupid proc that takes an external list instead of using its own reagents_list.
* Fix issue with reagent logging where it would sometimes fail to output reagents on reagent transfer.
* Update hyposprays_II.dm
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fish refactor. (#65785)
Refactors fish into proper paths.
Removes aquarium behaviour intermediary datums.
Moves fish functionality out of aquarium content component.
Fixes flopping animation resetting on dropping.
Simplifies everything. There should be no player facing changes.
The animate signal is kinda weak method of solving the animate queue issue but it seemed least intrusive to me.
Open to any better ideas.
* Fish refactor.
* Update fishing.dm
* Update fishing.dm
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: SkyratBot <skyratcommunity@gmail.com>
* makes vent scrubbers only activate if a gas they filter is on their tile, again! alive edition (#65591)
Alsonce scrubbers only wake up if something they can filter is on the tile an existing bug where scrubbers dont filter very small but non garbage collectable amounts of a gas becomes a big issue, as in without changing scrubbing rates you can breathe once on a tile with a scrubber set to scrub co2 and that co2 wont go away barring any other factors and the scrubber wont go to sleep. so now with the idea of rohesie and permission of lemon i changed how scrubbers removed small molar amounts of gas from their turf. now scrubbers will look through 100% of the turfs air mix for filtering, but will only remove up to
gas moles * (scrubber volume / turf volume) * (gas moles / total filterable moles) moles from each filterable gas in the turfs mix unless that amount is less than either MOLAR_ACCURACY * 100 or the number of moles of that filterable gas, in which case all of the moles of that gas are subtracted from the mix. this is to make it easier for the scrubber to remove very small amounts of gas with filters without changing how fast they scrub large amounts of gas, thus making scrubbers able to go to sleep faster only after a gas has been reduced to near zero
scrubbers are the biggest proportion of SSair's machine processing cost which is a non trivial amount of SSair's total cost. now they will only do most of their work if they can actually scrub anything on the tile which is a minority of the time.
* makes vent scrubbers only activate if a gas they filter is on their tile, again! alive edition
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Changes how fingerprints are applied to objects through gloves. (#65674)
* Changes how fingerprints are applied to objects through gloves.
* Fixed the issues from transfer_prints
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Can secondary attack (right-click) and fire guns with TK (#65473)
* Can fire guns and secondary attack (right-click) with TK
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* [NO GPB] Makes GPSes work again (#65623)
Removes the tracking arg from GPSs, which I added because I thougt it'd be a helpful thing to add. Turns out it just makes it turn every GPS off on creation.
* [NO GPB] Makes GPSes work again
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Painting improvement: Added a palette component for spraycans and palette items. (#65577)
* Painting improvement: Added a palette component for spraycans and palettes.
* Painting improvement: Added a palette component for spraycans and palette items.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* shy component now has variables for being shy around keyless and clientless bodies (#65418)
* shy component now has variables for being shy around keyless and clientless bodies
* h
* shy component now has variables for being shy around keyless and clientless bodies
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Refactors Lich Phylactery to be a component, makes it actually work (#65366)
* 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
* Refactors Lich Phylactery to be a component, makes it actually work
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>