Makes needed improvements to proposed fireplaces
- Fireplaces now use world.timer
- Fireplaces no longer prompt input() for inserting logs, it just
takes as many logs as possible
- Paper and paper bins can be thrown on the fire, thirty paper is worth
one log of burn time.
- One log gives 15 seconds of burn time, the fireplace can hold up to 5
minutes of fuel.
- Ignitable items now use a /obj level proc to generate their messages,
currently using this are cigarettes, candles, fireplaces
- The fireplace can be put out with an extinguisher
- Cardboard cutouts are now flammable
- The fireplace is only "warm and cozy" when lit
- Paperbins qdel their stored papers when destroyed (probably did that
already, but no harm in making sure)
- Also removed some returns hanging around
* Added new proc for lighting stuff
- Adds ignition_effect(atom/A, mob/user) to obj/item, which is called
when you're attempting to light things with that object. By default it
does nothing and prevents ignition, but if the object is hot, it returns
a message. May do other things for different stuff.
- Eswords now ignite flammable gasses in their area.
* Fireplace is no longer on fire when not on fire
Added priority overlays to atoms, which will not be removed when overlays are cut and will always remain on top when new overlays are added. This requires everyone to use add_overlay() and cut_overlays() instead of overlays += and overlays.Cut(). These procs are found in __HELPERS/icons.dm, and the priority overlay list is found in game/atoms.dm. Everything else is replacing deprecated overlay manipulation.
* Messages in a mob's say_log var are now timestamped and include the coordinates of the mob at the time.
* Fix oil slime extract explosion reaction not being logged.
* Fixes lack of log for reagent explosion.
* Mob's attack_log now show when the mob was electrocuted. Doors get an electrification log when electrified (including via an EMP).
* Fixes gibself admin log showing null instead of the key.
The action buttons now update their icon instantly.
Fixes versions of pickup(),equipped() and dropped not calling the parent.
Fixes drone not being able to remove a defib from their storage.
You can now cycle the mime mask by clicking it in your hand.
The action buttons for hardsuit and hooded suits now only appears when you're wearing the suit.
Created two mob helper procs getBeltSlot() and getBackSlot().
Created /datum/species/proc/on_species_loss() to handle stuff when our race change, currently only used by jelly and slime race to remove their exotic blood from our reagents and to remove slime people's action buttons.
Adds deconstruct structure helper
Moves chair sprites from objects.dmi to chairs.dmi
Fixes check shields passing proper flags on unarmed attacks
Makes stools and chairs able to be picked up
Changes wirecutters for an igniter in a stunprod
Stunprod sparkles on proding
Timer now have repeating setting, will restart again and again after
expiring
Voice analyzer got exclusive mode that works like a password, i.,e. need
a perfect match of the phrase
Voice analyzer got voice recognition mode that remembers human voice
instead of speech, works like personality recognition
Voice analyzer got a sensor mode, works on any speech it hears from
anyone
Voice analyzer modes and changed by applying a multitool to it
- Replacing some "for(var/mob/o in viewers()) show_message()" by "visible_message()".
- Replacing some "show_message()" by " << "..." " instead.
- Fixes being able to see the results of the health and slime analyzers while blind.
-
spawns have a high overhead.
I only went for easy targets, almost every spawn could be removed with a few subsystems in place to handle delays or cooldowns
now, if i understand this code right, the old code would flash in the viewers(3) of ***FUCKING USR*** on emp, meaning the person to trigger the emp, not the person holding the flash.
The documents say that if the second arg is null, ***it defaults to usr.***
I have it doing loc because this way it flashes from inside a pocket, but not a backpack or other container.