TG sync Sunday (#201)
* stage one * datums and shit * game stuff * modules * tgstation.dme * tools * these things for icons * compiling fixes * merge spree on TG * other updates * updated maps with deepfryers * My helpers were not helping
This commit is contained in:
@@ -145,6 +145,9 @@
|
||||
LB.brainmob.container = LB
|
||||
LB.brainmob.stat = DEAD
|
||||
|
||||
/obj/item/organ/eyes/transfer_to_limb(obj/item/bodypart/head/LB, mob/living/carbon/human/C)
|
||||
LB.eyes = src
|
||||
..()
|
||||
|
||||
/obj/item/bodypart/chest/drop_limb(special)
|
||||
return
|
||||
@@ -289,7 +292,6 @@
|
||||
H.hair_style = hair_style
|
||||
H.facial_hair_color = facial_hair_color
|
||||
H.facial_hair_style = facial_hair_style
|
||||
H.eye_color = eye_color
|
||||
H.lip_style = lip_style
|
||||
H.lip_color = lip_color
|
||||
if(real_name)
|
||||
|
||||
@@ -25,8 +25,9 @@
|
||||
var/facial_hair_color = "000"
|
||||
var/facial_hair_style = "Shaved"
|
||||
//Eye Colouring
|
||||
var/eyes = "eyes"
|
||||
var/eye_color = ""
|
||||
|
||||
var/obj/item/organ/eyes/eyes = null
|
||||
|
||||
var/lip_style = null
|
||||
var/lip_color = "white"
|
||||
|
||||
@@ -61,8 +62,6 @@
|
||||
real_name = "Unknown"
|
||||
hair_style = "Bald"
|
||||
facial_hair_style = "Shaved"
|
||||
eyes = "eyes"
|
||||
eye_color = ""
|
||||
lip_style = null
|
||||
|
||||
else if(!animal_origin)
|
||||
@@ -106,14 +105,6 @@
|
||||
else
|
||||
lip_style = null
|
||||
lip_color = "white"
|
||||
// eyes
|
||||
if(EYECOLOR in S.species_traits)
|
||||
eyes = S.eyes
|
||||
eye_color = H.eye_color
|
||||
else
|
||||
eyes = "eyes"
|
||||
eye_color = ""
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/bodypart/head/update_icon_dropped()
|
||||
@@ -167,9 +158,12 @@
|
||||
standing += lips
|
||||
|
||||
// eyes
|
||||
if(eye_color)
|
||||
var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[eyes]", "layer" = -BODY_LAYER, "dir"=SOUTH)
|
||||
img_eyes.color = "#" + eye_color
|
||||
if(!eyes)
|
||||
standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "eyes_missing", "layer" = -BODY_LAYER, "dir"=SOUTH)
|
||||
|
||||
else if(eyes.eye_color)
|
||||
var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes", "layer" = -BODY_LAYER, "dir"=SOUTH)
|
||||
img_eyes.color = "#" + eyes.eye_color
|
||||
standing += img_eyes
|
||||
|
||||
return standing
|
||||
|
||||
@@ -11,6 +11,12 @@
|
||||
implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/screwdriver = 45, /obj/item/weapon/pen = 25)
|
||||
time = 64
|
||||
|
||||
/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target)
|
||||
var/obj/item/organ/eyes/E = target.getorganslot("eye_sight")
|
||||
if(!E)
|
||||
user << "It's hard to do surgery on someones eyes when they don't have any."
|
||||
return FALSE
|
||||
|
||||
/datum/surgery_step/fix_eyes/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
user.visible_message("[user] begins to fix [target]'s eyes.", "<span class='notice'>You begin to fix [target]'s eyes...</span>")
|
||||
|
||||
@@ -21,7 +27,7 @@
|
||||
target.cure_nearsighted()
|
||||
target.blur_eyes(35) //this will fix itself slowly.
|
||||
target.set_eye_damage(0)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/datum/surgery_step/fix_eyes/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(target.getorgan(/obj/item/organ/brain))
|
||||
@@ -29,4 +35,4 @@
|
||||
target.adjustBrainLoss(100)
|
||||
else
|
||||
user.visible_message("<span class='warning'>[user] accidentally stabs [target] right in the brain! Or would have, if [target] had a brain.</span>", "<span class='warning'>You accidentally stab [target] right in the brain! Or would have, if [target] had a brain.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/organ/cyberimp/eyes
|
||||
name = "cybernetic eyes"
|
||||
/obj/item/organ/cyberimp/eyes/hud
|
||||
name = "cybernetic hud"
|
||||
desc = "artificial photoreceptors with specialized functionality"
|
||||
icon_state = "eye_implant"
|
||||
implant_overlay = "eye_implant_overlay"
|
||||
@@ -7,66 +7,6 @@
|
||||
zone = "eyes"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
|
||||
var/sight_flags = 0
|
||||
var/dark_view = 0
|
||||
var/eye_color = "fff"
|
||||
var/old_eye_color = "fff"
|
||||
var/flash_protect = 0
|
||||
var/see_invisible = 0
|
||||
var/aug_message = "Your vision is augmented!"
|
||||
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/Insert(var/mob/living/carbon/M, var/special = 0)
|
||||
..()
|
||||
if(ishuman(owner) && eye_color)
|
||||
var/mob/living/carbon/human/HMN = owner
|
||||
old_eye_color = HMN.eye_color
|
||||
HMN.eye_color = eye_color
|
||||
HMN.regenerate_icons()
|
||||
if(aug_message && !special)
|
||||
owner << "<span class='notice'>[aug_message]</span>"
|
||||
|
||||
owner.update_sight()
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/Remove(var/mob/living/carbon/M, var/special = 0)
|
||||
M.sight ^= sight_flags
|
||||
if(ishuman(M) && eye_color)
|
||||
var/mob/living/carbon/human/HMN = owner
|
||||
HMN.eye_color = old_eye_color
|
||||
HMN.regenerate_icons()
|
||||
..()
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/emp_act(severity)
|
||||
if(!owner)
|
||||
return
|
||||
if(severity > 1)
|
||||
if(prob(10 * severity))
|
||||
return
|
||||
owner << "<span class='warning'>Static obfuscates your vision!</span>"
|
||||
owner.flash_act(visual = 1)
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/xray
|
||||
name = "X-ray implant"
|
||||
desc = "These cybernetic eye implants will give you X-ray vision. Blinking is futile."
|
||||
eye_color = "000"
|
||||
implant_color = "#000000"
|
||||
origin_tech = "materials=4;programming=4;biotech=6;magnets=4"
|
||||
dark_view = 8
|
||||
sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/thermals
|
||||
name = "Thermals implant"
|
||||
desc = "These cybernetic eye implants will give you Thermal vision. Vertical slit pupil included."
|
||||
eye_color = "FC0"
|
||||
implant_color = "#FFCC00"
|
||||
origin_tech = "materials=5;programming=4;biotech=4;magnets=4;syndicate=1"
|
||||
sight_flags = SEE_MOBS
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
flash_protect = -1
|
||||
dark_view = 8
|
||||
aug_message = "You see prey everywhere you look..."
|
||||
|
||||
|
||||
// HUD implants
|
||||
/obj/item/organ/cyberimp/eyes/hud
|
||||
name = "HUD implant"
|
||||
@@ -91,32 +31,11 @@
|
||||
/obj/item/organ/cyberimp/eyes/hud/medical
|
||||
name = "Medical HUD implant"
|
||||
desc = "These cybernetic eye implants will display a medical HUD over everything you see."
|
||||
eye_color = "0ff"
|
||||
implant_color = "#00FFFF"
|
||||
origin_tech = "materials=4;programming=4;biotech=4"
|
||||
aug_message = "You suddenly see health bars floating above people's heads..."
|
||||
HUD_type = DATA_HUD_MEDICAL_ADVANCED
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/hud/security
|
||||
name = "Security HUD implant"
|
||||
desc = "These cybernetic eye implants will display a security HUD over everything you see."
|
||||
eye_color = "d00"
|
||||
implant_color = "#CC0000"
|
||||
origin_tech = "materials=4;programming=4;biotech=3;combat=3"
|
||||
aug_message = "Job indicator icons pop up in your vision. That is not a certified surgeon..."
|
||||
HUD_type = DATA_HUD_SECURITY_ADVANCED
|
||||
|
||||
|
||||
// Welding shield implant
|
||||
/obj/item/organ/cyberimp/eyes/shield
|
||||
name = "welding shield implant"
|
||||
desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision."
|
||||
slot = "eye_shield"
|
||||
origin_tech = "materials=4;biotech=3;engineering=4;plasmatech=3"
|
||||
implant_color = "#101010"
|
||||
flash_protect = 2
|
||||
aug_message = null
|
||||
eye_color = null
|
||||
|
||||
/obj/item/organ/cyberimp/eyes/shield/emp_act(severity)
|
||||
return
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
for(var/obj/item/I in stored_items)
|
||||
owner << "<span class='notice'>Your [owner.get_held_index_name(owner.get_held_index_of_item(I))]'s grip tightens.</span>"
|
||||
I.flags |= NODROP
|
||||
|
||||
|
||||
else
|
||||
release_items()
|
||||
owner << "<span class='notice'>Your hands relax...</span>"
|
||||
@@ -157,8 +157,8 @@
|
||||
/obj/item/weapon/storage/box/cyber_implants/bundle
|
||||
name = "boxed cybernetic implants"
|
||||
var/list/boxed = list(
|
||||
/obj/item/organ/cyberimp/eyes/xray,
|
||||
/obj/item/organ/cyberimp/eyes/thermals,
|
||||
/obj/item/organ/eyes/robotic/xray,
|
||||
/obj/item/organ/eyes/robotic/thermals,
|
||||
/obj/item/organ/cyberimp/brain/anti_stun,
|
||||
/obj/item/organ/cyberimp/chest/reviver)
|
||||
var/amount = 5
|
||||
|
||||
@@ -728,3 +728,139 @@
|
||||
if(!T)
|
||||
T = new()
|
||||
T.Insert(src)
|
||||
|
||||
if(!getorganslot("eye_sight"))
|
||||
var/obj/item/organ/eyes/E
|
||||
|
||||
if(dna && dna.species && dna.species.mutanteyes)
|
||||
E = new dna.species.mutanteyes()
|
||||
|
||||
else
|
||||
E = new()
|
||||
E.Insert(src)
|
||||
|
||||
//Eyes
|
||||
|
||||
/obj/item/organ/eyes
|
||||
name = "eyes"
|
||||
icon_state = "eyeballs"
|
||||
desc = "I see you!"
|
||||
zone = "eyes"
|
||||
slot = "eye_sight"
|
||||
|
||||
var/sight_flags = 0
|
||||
var/see_in_dark = 2
|
||||
var/tint = 0
|
||||
var/eye_color = "fff"
|
||||
var/old_eye_color = "fff"
|
||||
var/flash_protect = 0
|
||||
var/see_invisible = SEE_INVISIBLE_LIVING
|
||||
|
||||
/obj/item/organ/eyes/Insert(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
if(ishuman(owner) && eye_color)
|
||||
var/mob/living/carbon/human/HMN = owner
|
||||
old_eye_color = HMN.eye_color
|
||||
HMN.eye_color = eye_color
|
||||
HMN.regenerate_icons()
|
||||
M.update_tint()
|
||||
owner.update_sight()
|
||||
|
||||
/obj/item/organ/eyes/Remove(mob/living/carbon/M, special = 0)
|
||||
..()
|
||||
if(ishuman(M) && eye_color)
|
||||
var/mob/living/carbon/human/HMN = M
|
||||
HMN.eye_color = old_eye_color
|
||||
HMN.regenerate_icons()
|
||||
M.update_tint()
|
||||
M.update_sight()
|
||||
|
||||
/obj/item/organ/eyes/night_vision
|
||||
name = "shadow eyes"
|
||||
desc = "A spooky set of eyes that can see in the dark."
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
actions_types = list(/datum/action/item_action/organ_action/use)
|
||||
var/night_vision = TRUE
|
||||
|
||||
/obj/item/organ/eyes/night_vision/ui_action_click()
|
||||
if(night_vision)
|
||||
see_in_dark = 4
|
||||
see_invisible = SEE_INVISIBLE_LIVING
|
||||
night_vision = FALSE
|
||||
else
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
night_vision = TRUE
|
||||
|
||||
/obj/item/organ/eyes/night_vision/alien
|
||||
name = "alien eyes"
|
||||
desc = "It turned out they had them after all!"
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
sight_flags = SEE_MOBS
|
||||
|
||||
|
||||
///Robotic
|
||||
|
||||
/obj/item/organ/eyes/robotic
|
||||
name = "robotic eyes"
|
||||
icon_state = "cybernetic_eyeballs"
|
||||
desc = "Your vision is augmented."
|
||||
|
||||
/obj/item/organ/eyes/robotic/emp_act(severity)
|
||||
if(!owner)
|
||||
return
|
||||
if(severity > 1)
|
||||
if(prob(10 * severity))
|
||||
return
|
||||
owner << "<span class='warning'>Static obfuscates your vision!</span>"
|
||||
owner.flash_act(visual = 1)
|
||||
|
||||
/obj/item/organ/eyes/robotic/xray
|
||||
name = "X-ray eyes"
|
||||
desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile."
|
||||
eye_color = "000"
|
||||
see_in_dark = 8
|
||||
sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS
|
||||
|
||||
/obj/item/organ/eyes/robotic/thermals
|
||||
name = "Thermals eyes"
|
||||
desc = "These cybernetic eye implants will give you Thermal vision. Vertical slit pupil included."
|
||||
eye_color = "FC0"
|
||||
origin_tech = "materials=5;programming=4;biotech=4;magnets=4;syndicate=1"
|
||||
sight_flags = SEE_MOBS
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
flash_protect = -1
|
||||
see_in_dark = 8
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight
|
||||
name = "flashlight eyes"
|
||||
desc = "It's two flashlights rigged together with some wire. Why would you put these in someones head?"
|
||||
eye_color ="fee5a3"
|
||||
icon = 'icons/obj/lighting.dmi'
|
||||
icon_state = "flashlight_eyes"
|
||||
flash_protect = 2
|
||||
tint = INFINITY
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight/emp_act(severity)
|
||||
return
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight/Insert(var/mob/living/carbon/M, var/special = 0)
|
||||
..()
|
||||
M.AddLuminosity(15)
|
||||
|
||||
|
||||
/obj/item/organ/eyes/robotic/flashlight/Remove(var/mob/living/carbon/M, var/special = 0)
|
||||
M.AddLuminosity(-15)
|
||||
..()
|
||||
|
||||
// Welding shield implant
|
||||
/obj/item/organ/eyes/robotic/shield
|
||||
name = "shielded robotic eyes"
|
||||
desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision."
|
||||
origin_tech = "materials=4;biotech=3;engineering=4;plasmatech=3"
|
||||
flash_protect = 2
|
||||
|
||||
/obj/item/organ/eyes/robotic/shield/emp_act(severity)
|
||||
return
|
||||
Reference in New Issue
Block a user