Fixes shaking someone not reducing the sleeping var if the mob asleep is buckled to stand up.
Fixes merge conflict issues.
Fixes my revive code leaving the revived AI blind.
- can_be_revived(), used so we don't revive a mob who would immediately die again (lack of brain organ for carbons).
- fully_heal(), called by revive when we want to completely heal a mob before trying to ressuscitate it.
I gave some arguments to revive() so the proc can be used by more than just the admin healing code (ai revived by the AI fixer console, drone revived by another drone clicking it, strange reagent ressuscitating you, borg revived by restart circuitboard, changeling using his revive ability, etc)
This fixes borg revival not updating its vision correctly and not updating the diagnostic HUD. Same fix for changeling revival.
Fixes revive() working on brainless carbons, making them die right away. It now only heals the body but doesn't actually make the mob alive again.
Fixes dead mob put into closet and then revived not seeing the closet vision overlay.
Fixes brain mob's emp_damage never decreasing when stat == DEAD.
Fixes posibrain's brainmob starting dead.
Fixes ai fixing not clearing the blind overlay properly.
Fireball projectile no longer explodes on the firer when there's a body on their tile. The fireball's range() code now only checks the two tiles on its front left and front right for mobs to hit.
Remove some update_vision_overlays() (now unused) that I forgot to remove.
Using a staff oh healing on a corpse with a damaged brain organ will revive the mob and heal the brain organ.
Fixes borg made from staff of change not having a brain organ in their MMI.
Removes some duplicated procs in mob.dm (probably due to incorrectly fix merge conflicts)
You can now attack brains with a weapon even when not inside a MMI (previously only when in MMI).
Fixes brain vision not being given mech sight when put inside a mech.
Removing a brain from its MMI not place the brain in your hand instead of on the ground.
Fixes built cyborgs containing two mmis.
Damaged brain from attack can't be placed inside a cyborg.
Robotized humans (called Robotize()) , such as roundstart cyborgs, now have an MMI with the human's name (instead of having a brain with a borg name, which was inconsistent with built cyborgs).
Syndiborgs bought by nukeops now have a brain with the same last name as the ops team.
Fixes Borg created with staff of change not containing a brain organ.
Fixes brain being killable when inside cyborgs. Fixes borg dropping a dead mmi brain unable to talk. Brains are now immune to environment damage and radiation.
Fixes brain being able to suicide multiple times (if put in and out of an MMI)
Replaces typesof(path) - path with subtypesof(path) in obvious places. I was a bit conservative, there's probably a few more places that could use this.
Merged kill_count and range var into one var/range for obj/item/projectile.
Simplified projectile/proc/Range().
Fixes timestoped projectiles still calling Range() and thus being deleted despite being stopped.
Fixes projectile being invisible when on the first tile in front of the shooter (which meant no sprite showing when shooting a target 1 tile away)
Simplifies kinetic/Range()