Derp fix on objects, we check mob contents instead of src.contents for any objects that can hear and pass hear_talk on to it.
Tape recorder will record the verb sent instead of doing it's own thing with verbs.
Chameleon Glasses, Exosuit, Gloves, Shoes, Hat, Gun, Mask, Backpack, and Gun.
The Gun does 1 damage and can disguise as any gun. As long as you don't fire it people won't notice that it shoots 1 damage rubber bullets.
These new items come in the Chameleon Kit, which replaces and contains the Chameleon Jumpsuit
It's about time somebody did this. It still has the really really annoying/bad brute damage, but it doesn't just knock you on your ass in one hit anymore.
Before: Every tick each HUD item would recalculate and redo images for every mob in view. For items like the secHUD where we're transversing implants and the various records this gets very expensive.
After: Mobs use their hud_list variable to store varius huditem images, when conditions change for those specific huditem images it updates the specific ones on demand. As a backup every 30 ticks or so the mob will update all of their hud_list.
Also: moved proc/RoundHealth() from 2 seperate locations into __HELPERS/mobs.dm
Conflicts:
code/modules/mob/living/living.dm
Before: Every tick each HUD item would recalculate and redo images for every mob in view. For items like the secHUD where we're transversing implants and the various records this gets very expensive.
After: Mobs use their hud_list variable to store varius huditem images, when conditions change for those specific huditem images it updates the specific ones on demand. As a backup every 30 ticks or so the mob will update all of their hud_list.
Also: moved proc/RoundHealth() from 2 seperate locations into __HELPERS/mobs.dm
- Restored "steam" code to chem grenades to handle grenades that don't have any reagents in them that react i.e. water grenades. (I removed it thinking it was only in there for handling foam reagents, but it seems it has more uses.)
This splashes the surrounding area in whatever reagents were leftover in the grenade after all reactions have occurred.
Fixes#3986
- Foam reagent inheritance fixed:
The trans_to() proc in Chemistry-Holder.dm was calling handle_reactions() every time it would add and remove reagents with add_reagent() and remove_reagent(). I've added a safety flag to both of these procs (and copy_to()) so that trans_to will not call handle_reactions() until it has added all the reagents to the target container. This allows foam to reliably take on the properties of other leftover reagents.
- Fixed a bug in effect_system.dm that wasn't applying reagents from foam to the environment.
- Tweaked smoke to apply reagent effects after it has stopped moving
This was causing huge reagent spam at the center of the smoke cloud as it was spawning, since they were being applied every time the cloud of smoke moved. Also changed it to apply the effects 2-3 times at longer intervals (2 seconds).
- Smoke also only effects tiles in a 3x3 grid now, rather than 5x5.
- Summary:
Chem smoke does slightly less damage (if it contains damaging reagents)
Chem smoke proc calls reduced by 60-70% (significant lag reduction)
Foam works properly again
Foam proc calls reduced by 70-80%