Merge pull request #16311 from S34NW/does-anyone-else-hate-genetics

Replaces genetics xray vision with other vision genes
This commit is contained in:
variableundefined
2021-09-06 23:16:04 -05:00
committed by GitHub
15 changed files with 107 additions and 74 deletions
+8
View File
@@ -1205,6 +1205,14 @@ so that different stomachs can handle things in different ways VB*/
sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
see_in_dark = max(see_in_dark, 8)
if(HAS_TRAIT(src, TRAIT_MESON_VISION))
sight |= SEE_TURFS
lighting_alpha = min(lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE)
if(HAS_TRAIT(src, TRAIT_NIGHT_VISION))
see_in_dark = max(see_in_dark, 8)
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
SEND_SIGNAL(src, COMSIG_MOB_UPDATE_SIGHT)
sync_lighting_plane_alpha()
@@ -894,13 +894,21 @@ It'll return null if the organ doesn't correspond, so include null checks when u
if(!isnull(H.vision_type.lighting_alpha))
H.lighting_alpha = min(H.vision_type.lighting_alpha, H.lighting_alpha)
if(HAS_TRAIT(src, TRAIT_THERMAL_VISION))
if(HAS_TRAIT(H, TRAIT_MESON_VISION))
H.sight |= SEE_TURFS
H.lighting_alpha = min(H.lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE)
if(HAS_TRAIT(H, TRAIT_THERMAL_VISION))
H.sight |= (SEE_MOBS)
H.lighting_alpha = min(H.lighting_alpha, LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE)
if(HAS_TRAIT(H, TRAIT_XRAY_VISION))
H.sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
if(HAS_TRAIT(H, TRAIT_NIGHT_VISION))
H.see_in_dark = max(H.see_in_dark, 8)
H.lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
if(H.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST))
H.see_invisible = SEE_INVISIBLE_OBSERVER
+1 -1
View File
@@ -760,7 +760,7 @@
//called when the mob receives a bright flash
/mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash)
if(check_eye_prot() < intensity && (override_blindness_check || !HAS_TRAIT(src, TRAIT_BLIND)))
if(check_eye_prot() < intensity && (override_blindness_check || !HAS_TRAIT(src, TRAIT_BLIND)) && !HAS_TRAIT(src, TRAIT_FLASH_PROTECTION))
overlay_fullscreen("flash", type)
addtimer(CALLBACK(src, .proc/clear_fullscreen, "flash", 25), 25)
return 1