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
Conflicts:
code/__HELPERS/mobs.dm
code/datums/mind.dm
code/game/objects/items/weapons/implants/implanter.dm
code/modules/mob/dead/observer/observer.dm
code/modules/mob/living/carbon/human/human.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/ai/ai.dm
code/modules/mob/living/silicon/silicon.dm
code/modules/virus2/helpers.dm
code/setup.dm
icons/mob/hud.dmi
Trying to color them while dark green and brown-grey ended up in odd colorations. Quality of life change.
Conflicts:
code/modules/mob/new_player/sprite_accessories.dm
icons/mob/human_face.dmi
icons/mob/human_races/r_def_tajaran.dmi
icons/mob/human_races/r_tajaran.dmi
New proc: /datum/species/create_organs
Called in set_species when no organs exist or it's forced.
Also shuffled set_species around a bit, adding a var to human/new to
specify a species to start as.
Should fix the adminspawn vox organ runtime.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Conflicts:
code/game/machinery/cloning.dm
code/modules/mob/living/carbon/human/human.dm
code/modules/mob/new_player/new_player.dm
code/modules/organs/organ.dm
Lobby players won't hear stuffs
Universal hearing with animals won't be a thing.
Players won't hear stuff if they are sleeping, though somethings might slip through...
Conflicts:
code/modules/mob/living/carbon/human/say.dm
code/modules/mob/living/simple_animal/simple_animal.dm
code/modules/mob/new_player/new_player.dm
Locks down cyborgs after they choose a module until they choose an
appareance, to prevent standard borgs with security modules and such
running around.
Conflicts:
code/modules/mob/living/silicon/robot/robot.dm
Tracking added for AI's and Observers
Instead of calling GetVoice() over and over for everyone that can hear you we're checking a variable that is updated with Life()
removed a bunch of my debug verbs.
Conflicts:
code/game/machinery/telecomms/broadcaster.dm
code/modules/mob/dead/observer/observer.dm
code/modules/mob/living/carbon/human/human_defines.dm
code/modules/mob/living/silicon/say.dm
- Complete rewrite of the chemsmoke spawning code (everything that happens after the reaction to create the smoke).
- Moved it into it's own file since it's a little longer than the old one code-wise.
- Tweaked the smoke sprites; gave chemsmoke directions for more randomization, and tweaked the timing of their animations so they are smooth now.
Most of the code is documented, so you should be able to follow what's going on just reading through it. In short though:
- Chemsmoke now affects a circular area with a variable range depending on the total amount of chemsmoke created (no more 1-of-each-ingredient smoke grenades - sorry).
- The carried reagent volume in the cloud balances itself according to how big the affected area is (larger area, less carried reagent per turf).
- The carried reagent has more volume the closer you are to the centre of the cloud.
- The visual smoke effect scales with how big the affected area is.
Conflicts:
code/game/objects/effects/effect_system.dm
icons/effects/96x96.dmi
2 for loops is more expensive then what we're doing here.
Also we check to see if virus2 is populated before starting a for loop
Conflicts:
code/modules/mob/living/carbon/human/life.dm
code/modules/mob/living/carbon/monkey/life.dm