Misc Synthetic Code Cleanup & Minor Tweaks (#3307)

Mostly synthetic code cleanup, some tweaks to human examine and ID cards too.

changes:

Synthetic sprint procs have been compressed down to one proc for all machine subspecies vs. one per subspecies.
Synthetic sprint now only stuns synthetics with empty cells for 30 seconds for all types.
Refactored synthetic limb roboticization.
Changed how a lot of synthetic/industrial checks work.
ID portraits are now 128x128, and scaled without blurring.
Species can now specify an examine text color (for their species name) that differs from their flesh color.
Fixed some eye checks not respecting species.vision_organ.
Examine pulse-checking now uses do_mob & has a progress bar.
This commit is contained in:
Lohikar
2017-08-29 15:21:29 -05:00
committed by Erki
parent ff3b59f67f
commit c80d893e71
31 changed files with 218 additions and 424 deletions

View File

@@ -275,20 +275,20 @@ obj/item/weapon/gun/energy/staff/focus/attack_self(mob/living/user as mob)
if(!user.is_wizard())
if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/H = user
var/obj/item/organ/O = H.internal_organs_by_name[pick("eyes","appendix","kidneys","liver", "heart", "lungs", "brain")]
var/obj/item/organ/O = H.internal_organs_by_name[pick(H.species.vision_organ || "eyes","appendix","kidneys","liver", "heart", "lungs", "brain")]
if(O == null)
user << "<span class='notice'>You can't make any sense of the arcane glyphs. . . maybe you should try again.</span>"
user << "<span class='notice'>You can't make any sense of the arcane glyphs... maybe you should try again.</span>"
else
user <<"<span class='danger'>As you stumble over the arcane glyphs, you feel a twisting sensation in [O]!</span>"
user << "<span class='danger'>As you stumble over the arcane glyphs, you feel a twisting sensation in your [O.name]!</span>"
user.visible_message("<span class='danger'>\A flash of smoke pours out of [user]'s orifices!</span>")
playsound(user, 'sound/magic/lightningshock.ogg', 40, 1)
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(5, 0, user.loc)
smoke.attach(user)
smoke.start()
user.show_message("<b>[user]</b> screams!",2)
user.emote("scream")
user.drop_item()
if(O && istype(O))
if(istype(O))
O.removed(user)
qdel(src)
return 0