* Refactor on_mob_death and death implants
There is a proc on `/obj/item` called `on_mob_death` called on all
items in the contents of a mob on that mob's death. It is currently used
for explosive implant detonation, and the deactivation of the
Peaceborg's projectile dampener.
Instead of using this old proc, both of them now instad use the
COMSIG_LIVING_DEATH signal, already emitted when their owner dies.
The activation of an explosive implant will now occur after the rest of
the death code has run, since it activates with an async applied
function, since some other implants may still want the mob's body
intact, and you shouldn't use `sleep()` (which it does in the "slow
explosion mode") in signal handlers.
In addition, the "can_be_implanted" proc for /mob/living (and overriden
for silicons, slimes and simple animals) has been folded into the
`/obj/item/implant/proc/can_be_implanted_to` proc. Some future implants
may want to be more permissive than the current permissions, but that
isn't possible when checking both procs.
- Fixes greyscale material floor tiles created from cyborg stacks
- Makes cyborg stacks contain materials
- Prevents a potential bug involving metalgen and stacks
Skeletons, abductors and ethereals have no sense of taste. Previously
they would taste something "indescribable", but instead, they will not
taste anything or get any message. This also means they will no longer
get mood buffs from eating/drinking high quality food.
Carbons without tongues also can no longer taste anything.
- The utility item "taster" has had some additional messages added.
* Remove can_taste proc
Instead of a single proc that is only used, so carbons can override it
with the missing tongue, just have carbons unable to taste anything by
default, and then have the tongue "supress" that.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
This PR makes a few changes regarding scrolls of teleportation.
Scrolls of teleportation no longer use outdated HTML based interface and will take you straight into a list of a possible destinations upon use. That interface had a very little point of existing in the first place, the only possibly useful information was number of remaining uses, which is solved by a point below.
Scrolls of teleportation now show a number of remaining uses upon examination and also give proper feedback messages upon teleportation.
Scrolls of teleportation now crumble to dust when out of uses. They are a consumable item and cannot be recharged, which made them utterly useless when out of uses, creating only clutter.
Fixes few statue bugs with textured materials.
Makes materials use managed filters. This can have side effects on things that already had unmanaged filters on.
* 👛 Add "Implant" to list of uplink locations
🆑 coiax
add: You may now pick Implant as a preferred uplink location, meaning
that if you become a traitor, you will start with an uplink implant. The
cost of the implant (4 TC) is deducted from your total starting TC,
because the Syndicate doesn't give freebies.
fix: Admins removing an uplink from a person with an uplink implant will
now destroy the implant, rather than leaving an implant that does
nothing.
/🆑
If you are the sort of person who gets their PDA, pen and radio stolen
really easily, then maybe you'd be interested in just spawning with an
implant. Be warned, all of the 17-20 TC items will be out of reach
because of the implant cost.
Could be considered slightly more powerful than just ordering the
implant at shift start, given you don't have to get rid of an implanter
and suspicious box anymore.
When testing with the admin grant uplink buttons, I discovered that the
"Take" uplink option was only half working when taking the uplink from a
person with only an implant uplink. It would take the component, but not
the implant, leaving the person with a do-nothing action button. This
has been fixed.
* Add missing DEFINES
* Remove one layer of spaces
Will this sate the linting gods?
* Replace 20 default with TELECRYSTALS_DEFAULT
/obj/throw_at was not properly passing down the return value. Thus anything that checked for this later down the chain (/obj/item) would fail. The two places this was used were for bolas to make a sound when thrown and facehuggers to have a sprite when thrown.
Shotgun slugs can no longer be made in an autolathe.
Buckshot rounds can no longer be made in an autolathe.
Frag12 rounds deal less direct damage, since they fucking explode.
Pulse shot rounds deal less damage.
Increased the cooldown on riot shotguns.
Removed buckshot rounds from all maps.
Combat shotguns start with beanbags.
Why It's Good For The Game
Shotguns have been overpowered for too long. NT is lasers , syndicate is ballistics.
it gives target a no drop duffelbag which every around 100s will try check if there is food inside else it attacks you, you can poison the food to make it die faster.
more variety for wiz to annoy crew that isnt murder bone
Cyborg's pipe cleaner is now using a radial menu for choosing it's colors instead of a clumsy input one.
RCL now properly updates it's pipe cleaner holder's color, so you can actually see the color when using RCL radial menu.
RCL is now able to put cables down on floors seamlessly, as there is no reason to restrict it to just a plating and catwalks anymore due to the fact that pipe cleaner coils no longer function as a power carriers, but are merely visual entities for players to play with.
And lastly, pipe cleaners now use color defines and are setting its color directly instead of having redundant variable do it for them, which was needlessly complicating it.
headspikes don't give you a random head when you deconstruct them (except when maploaded)
also they look like they were supposed to with the head impaled
Converts most on_reagent_change calls to signals.
Converts on_reagent_change to a signal handler.
Expands the reagent exposure signals
Add a setter proc and signal for reagent temperature
Fixes adjust_thermal_energy not sending a temperature change event
Makes min_temp and max_temp actually do something with adjust_thermal_energy
Refactors base construction consoles to be generic instead of only being meant for building the aux shuttle. The current aux base construction console behaves the exact same.
This PR is A step towards minichem, as I'll be using base construction code in it pretty heavily. More information about the whole minichem thing in this design doc
In terms of player-facing changes, this PR has made possible a neat admin-only base construction console that can be used to construct things anywhere on the z level.
Why It's Good For The Game
The current base construction console code was snowflakey and didn't follow particularly great coding practices. This fixes that and provides a solid foundation for future work.
Replaces one of the rainbow seeds in the exotic seeds crate with a pack of shrub seeds.
Adds a new, growable seed species for shrubs. Shrubs, when planted (similar to kudzu!) plants a solid, weak barrier in hedges.
These hedges block vision, unless trimmed. Thankfully, we already have a hedge trimming skillchip, so using a sharp implement on the hedge will make it non-opaque.
Also provides a generic, forward proof way to provide information to radial menu choices.
Why It's Good For The Game
input is old and crummy.
Blob is a very wiki reliant mechanic. This moves a bit of it into the game itself to fix that.
Provides a real cancel option, whereas the old one had none. This is not a balance change, but a QoL one--everyone just moved the input window off to the side.
This PR refactors Cyborg Boot Debug and brings it's UI from html based one to tgui with some improvements and cleanup. I also took a liberty to add tooltip to each setting to shed some light on its function, as it could be quite unclear what exactly it meant.
Huge removal of dead vars, bad timers, and other sloppy jitteriness from beams. They go from checking movement to waiting for a signal.
VARIABLE KILL LIST:
sleep_time: signals baby
finished: signals BAYBEEE
target_oldloc: not only not typecasted as a turf or named as a turf, it was unused. when are we going to use this? the beam starts from the origin!
origin_oldloc: bad name, not typecasted. renamed to originturf
static_beam: how are you an unused variable and still get replaced by signals like really
timing_id: signallllss bbbaaaabbyy
recalculating: you get the drill by now signals baby
base_icon: unused, seemingly replaced by visuals I think
Filter refactor + In Game Filter Editor
Accessed via VV in the dropdown of atoms. "Edit Filters.
Makes filters actually usable.
Co-authored-by: ghgh <hghgh>