modes that update every 5 ticks won't require clicking the pda 5 times to get a UI window open.
We now check to see if a UI already exists if not we don't check
Before: AI's on new APC system would constantly add more and more power usage to the APC
After: AI's no longer handle their power consumption, that has been pushed off to an /obj/machinery/ai_powersupply dummy object which will process the power usage. This is much cleaner because machinery objects are already processed properly for the new system and keeps us from having to rewrite a bunch of AI code to bring the AI in line with how the new APC system works.
Conflicts:
code/modules/mob/living/silicon/ai/ai.dm
With new APC zone methods having non-machines use_power in their master_contrller called processes means
that they don't update the zone's flag to recalculate power usage and will continue to increase the
per-tick power usage each tick. AI should be the only problem with this unless robutts have a life() tick
to use_power on the area when inside a charger or something really stupid.
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/__HELPERS/mobs.dm
code/game/objects/items/weapons/implants/implanter.dm
code/modules/mob/dead/observer/observer.dm
code/modules/mob/living/carbon/human/human_damage.dm
code/modules/mob/living/carbon/human/life.dm
code/modules/mob/living/living.dm
code/modules/mob/living/living_defines.dm
code/modules/mob/living/silicon/silicon.dm
code/modules/virus2/helpers.dm
code/setup.dm
icons/mob/hud.dmi
Airlock sensors will now store the previous cycles pressure value, then compare it with the current pressure next time it runs.
If the pressure hasn't changed it will skip sending a status update.