diff --git a/code/WorkInProgress/virus2/base.dm b/code/WorkInProgress/virus2/base.dm
index f0d6f4d78c0..6676ac73bec 100644
--- a/code/WorkInProgress/virus2/base.dm
+++ b/code/WorkInProgress/virus2/base.dm
@@ -1,6 +1,6 @@
/obj/virus
// a virus instance that is placed on the map, moves, and infects
- invisibility = 100
+ invisibility = INVISIBILITY_LEVEL_ONE00
var/datum/disease2/disease
diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm
index 5ad38fda35a..0f3e6cdbef7 100644
--- a/code/defines/area/Space Station 13 areas.dm
+++ b/code/defines/area/Space Station 13 areas.dm
@@ -26,6 +26,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "unknown"
layer = 10
mouse_opacity = 0
+ invisibility = INVISIBILITY_LIGHTING
var/lightswitch = 1
var/area_lights_luminosity = 9 //This gets assigned at area creation. It is used to determine how bright the lights in an area should be. At the time of writing the value that it gets assigned is rand(6,9) - only used for light tubes
diff --git a/code/defines/mob/living/living.dm b/code/defines/mob/living/living.dm
index 8e6d241673a..93f4bfd8782 100644
--- a/code/defines/mob/living/living.dm
+++ b/code/defines/mob/living/living.dm
@@ -6,3 +6,4 @@
var/now_pushing = null
var/cameraFollow = null
var/tod = null // Time of death
+ see_invisible = SEE_INVISIBLE_LIVING
\ No newline at end of file
diff --git a/code/game/asteroid/artifacts.dm b/code/game/asteroid/artifacts.dm
index a955848eff8..7f4fa0ff004 100644
--- a/code/game/asteroid/artifacts.dm
+++ b/code/game/asteroid/artifacts.dm
@@ -82,7 +82,7 @@ var/global/list/spawned_surprises = list()
user.mutations.Add(XRAY)
user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
user.see_in_dark = 8
- user.see_invisible = 2
+ user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
if (!(COLD_RESISTANCE in user.mutations))
user.mutations.Add(COLD_RESISTANCE)
diff --git a/code/game/dna.dm b/code/game/dna.dm
index 3286a1d26ca..a671248db25 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -425,7 +425,7 @@
M.mutations = list()
M.see_in_dark = 2
- M.see_invisible = 0
+ M.see_invisible = SEE_INVISIBLE_LIVING
if (isblockon(getblock(M.dna.struc_enzymes, 1,3),1))
M.disabilities |= NEARSIGHTED
@@ -460,7 +460,7 @@
M << "\blue The walls suddenly disappear."
M.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
M.see_in_dark = 8
- M.see_invisible = 2
+ M.see_invisible = SEE_INVISIBLE_LEVEL_TWO
M.mutations.Add(XRAY)
if (isblockon(getblock(M.dna.struc_enzymes, 9,3),9))
M.disabilities |= NERVOUS
diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm
index 0a92cba6dcb..ad152e5cb6f 100644
--- a/code/game/gamemodes/events/ninja_equipment.dm
+++ b/code/game/gamemodes/events/ninja_equipment.dm
@@ -1266,7 +1266,7 @@ ________________________________________________________________________________
U << "Switching mode to Thermal Scanner."
if(2)
mode=3
- U.see_invisible = 0
+ U.see_invisible = SEE_INVISIBLE_LIVING
U.sight &= ~SEE_MOBS
U << "Switching mode to Meson Scanner."
if(3)
diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm
index 3dde2854cd3..f849bf77356 100644
--- a/code/game/gamemodes/events/space_ninja.dm
+++ b/code/game/gamemodes/events/space_ninja.dm
@@ -581,7 +581,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
//Allows the mob to grab a stealth icon.
/mob/proc/NinjaStealthActive(atom/A)//A is the atom which we are using as the overlay.
- invisibility = 2//Set ninja invis to 2.
+ invisibility = INVISIBILITY_LEVEL_TWO//Set ninja invis to 2.
var/icon/opacity_icon = new(A.icon, A.icon_state)
var/icon/alpha_mask = getIconMask(src)
var/icon/alpha_mask_2 = new('icons/effects/effects.dmi', "at_shield1")
diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm
index 8f528ecdb2a..7000471dfff 100644
--- a/code/game/machinery/Beacon.dm
+++ b/code/game/machinery/Beacon.dm
@@ -15,7 +15,7 @@
..()
var/turf/T = loc
Beacon = new /obj/item/device/radio/beacon
- Beacon.invisibility = 100
+ Beacon.invisibility = INVISIBILITY_MAXIMUM
Beacon.loc = T
hide(T.intact)
@@ -44,7 +44,7 @@
if(!Beacon)
var/turf/T = loc
Beacon = new /obj/item/device/radio/beacon
- Beacon.invisibility = 100
+ Beacon.invisibility = INVISIBILITY_MAXIMUM
Beacon.loc = T
if(Beacon)
if(Beacon.loc != loc)
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 17e8159ba13..535c3fea002 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -15,7 +15,7 @@
icon_state = "grey_target_prism"
anchored = 1
layer = 3
- invisibility = 2 // the turret is invisible if it's inside its cover
+ invisibility = INVISIBILITY_LEVEL_TWO // the turret is invisible if it's inside its cover
density = 1
use_power = 1 // this turret uses and requires power
idle_power_usage = 50 // when inactive, this turret takes up constant 50 Equipment power
@@ -326,7 +326,7 @@ Status: []
"},
if(!anchored)
anchored = 1
- invisibility = 2
+ invisibility = INVISIBILITY_LEVEL_TWO
icon_state = "[lasercolor]grey_target_prism"
user << "You secure the exterior bolts on the turret."
cover=new/obj/machinery/porta_turret_cover(src.loc) // create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
@@ -1032,7 +1032,7 @@ Status: []
"},
if(!Parent_Turret.anchored)
Parent_Turret.anchored = 1
- Parent_Turret.invisibility = 2
+ Parent_Turret.invisibility = INVISIBILITY_LEVEL_TWO
Parent_Turret.icon_state = "grey_target_prism"
user << "You secure the exterior bolts on the turret."
else
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 5c53b407975..b1b8c71b8f9 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -44,7 +44,7 @@
var/enabled = 1
anchored = 1
layer = 3
- invisibility = 2
+ invisibility = INVISIBILITY_LEVEL_TWO
density = 1
var/lasers = 0
var/lasertype = 1
@@ -251,7 +251,7 @@
src.cover.icon_state = "turretCover"
spawn(10)
if (popping==-1)
- invisibility = 2
+ invisibility = INVISIBILITY_LEVEL_TWO
popping = 0
/obj/machinery/turret/bullet_act(var/obj/item/projectile/Proj)
diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm
index 893717d067a..8b9fd520e86 100644
--- a/code/game/magic/cultist/runes.dm
+++ b/code/game/magic/cultist/runes.dm
@@ -206,7 +206,7 @@ var/list/sacrificed = list()
usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision."
else
usr << "\red The world beyond opens to your eyes."
- usr.see_invisible = 15
+ usr.see_invisible = SEE_INVISIBLE_OBSERVER
usr.seer = 1
return
return fizzle()
@@ -411,7 +411,7 @@ var/list/sacrificed = list()
D.visible_message("\red [D] slowly dissipates into dust and bones.", \
"\red You feel pain, as bonds formed between your soul and this homunculus break.", \
"\red You hear faint rustle.")
- ghost.invisibility = 10
+ ghost.invisibility = INVISIBILITY_OBSERVER
ghost.key = D.key
D.dust()
return
diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/devices/scanners.dm
index c57e92fb3e8..ce30397a0ce 100644
--- a/code/game/objects/devices/scanners.dm
+++ b/code/game/objects/devices/scanners.dm
@@ -58,7 +58,7 @@ MASS SPECTROMETER
M.invisibility = 0
spawn(2)
if(M)
- M.invisibility = 2
+ M.invisibility = INVISIBILITY_LEVEL_TWO
/obj/item/device/healthanalyzer
diff --git a/code/game/objects/grenades/chem_grenade.dm b/code/game/objects/grenades/chem_grenade.dm
index c5c4069ac44..7fbda2b62da 100644
--- a/code/game/objects/grenades/chem_grenade.dm
+++ b/code/game/objects/grenades/chem_grenade.dm
@@ -204,7 +204,7 @@
src.reagents.reaction(A, 1, 10)
- invisibility = 100 //Why am i doing this?
+ invisibility = INVISIBILITY_MAXIMUM //Why am i doing this?
spawn(50) //To make sure all reagents can work
del(src) //correctly before deleting the grenade.
else
diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm
index 3ca15fafc07..680b92c97ed 100644
--- a/code/modules/chemical/Chemistry-Tools.dm
+++ b/code/modules/chemical/Chemistry-Tools.dm
@@ -238,7 +238,7 @@
src.reagents.reaction(A, 1, 10)
- invisibility = 100 //Why am i doing this?
+ invisibility = INVISIBILITY_LEVEL_ONE00 //Why am i doing this?
spawn(50) //To make sure all reagents can work
del(src) //correctly before deleting the grenade.
else
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 2f51aa39311..5db176da464 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -1,7 +1,7 @@
/mob/dead/observer/New(mob/body, var/can_reenter_corpse = 1)
- invisibility = 10
+ invisibility = INVISIBILITY_OBSERVER
sight |= SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
- see_invisible = 15
+ see_invisible = SEE_INVISIBLE_OBSERVER
see_in_dark = 100
verbs += /mob/dead/observer/proc/dead_tele
stat = DEAD
@@ -235,3 +235,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/add_memory()
set hidden = 1
src << "\red You are dead! You have no mind to store memory!"
+
+/mob/dead/observer/verb/toggle_darkness()
+ set name = "Toggle Darkness"
+ set category = "Ghost"
+
+ if (see_invisible == SEE_INVISIBLE_OBSERVER_NOLIGHTING)
+ see_invisible = SEE_INVISIBLE_OBSERVER
+ else
+ see_invisible = SEE_INVISIBLE_OBSERVER_NOLIGHTING
\ No newline at end of file
diff --git a/code/modules/mob/living/blob/blob.dm b/code/modules/mob/living/blob/blob.dm
index 1d81426c8c1..e49c166f1b2 100644
--- a/code/modules/mob/living/blob/blob.dm
+++ b/code/modules/mob/living/blob/blob.dm
@@ -5,7 +5,7 @@
icon_state = "blob_spore_temp"
pass_flags = PASSBLOB
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
var/ghost_name = "Unknown"
var/creating_blob = 0
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index ff3b8283c66..a501db763fd 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -453,13 +453,13 @@
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (stat != 2)
sight |= SEE_MOBS
sight &= ~SEE_TURFS
sight &= ~SEE_OBJS
see_in_dark = 4
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
if (sleep) sleep.icon_state = text("sleep[]", sleeping)
if (rest) rest.icon_state = text("rest[]", resting)
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index 991f0de09eb..25bd39f3f7c 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -377,13 +377,13 @@
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (stat != 2)
sight |= SEE_MOBS
sight &= ~SEE_TURFS
sight &= ~SEE_OBJS
see_in_dark = 4
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
if (sleep) sleep.icon_state = text("sleep[]", sleeping)
if (rest) rest.icon_state = text("rest[]", resting)
diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm
index 5c57f16d106..f7eb90cbbd6 100644
--- a/code/modules/mob/living/carbon/brain/death.dm
+++ b/code/modules/mob/living/carbon/brain/death.dm
@@ -9,7 +9,7 @@
if(blind) blind.layer = 0
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
tod = worldtime2text() //weasellos time of death patch
if(mind) mind.store_memory("Time of death: [tod]", 0) //mind. ?
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index d518de37bd0..6ce3bd9b856 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -216,13 +216,13 @@
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (stat != 2)
sight &= ~SEE_TURFS
sight &= ~SEE_MOBS
sight &= ~SEE_OBJS
see_in_dark = 2
- see_invisible = 0
+ see_invisible = SEE_INVISIBLE_LIVING
if (sleep) sleep.icon_state = text("sleep[]", sleeping)
if (rest) rest.icon_state = text("rest[]", resting)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 92c350d7273..783c66c3996 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -801,28 +801,28 @@
if( stat == DEAD )
sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS)
see_in_dark = 8
- if(!druggy) see_invisible = 2
+ if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO
if(healths) healths.icon_state = "health7" //DEAD healthmeter
else
sight &= ~(SEE_TURFS|SEE_MOBS|SEE_OBJS)
switch(mutantrace)
if("lizard","metroid")
see_in_dark = 3
- see_invisible = 1
+ see_invisible = SEE_INVISIBLE_LEVEL_ONE
else
see_in_dark = 2
if(XRAY in mutations)
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
- if(!druggy) see_invisible = 2
+ if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO
if(seer)
var/obj/effect/rune/R = locate() in loc
if(R && R.word1 == wordsee && R.word2 == wordhell && R.word3 == wordjoin)
- see_invisible = 15
+ see_invisible = SEE_INVISIBLE_OBSERVER
else
- see_invisible = 0
+ see_invisible = SEE_INVISIBLE_LIVING
seer = 0
if(istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja))
@@ -835,30 +835,30 @@
target_list += target
if(target_list.len)//Everything else is handled by the ninja mask proc.
O.assess_targets(target_list, src)
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
if(1)
see_in_dark = 5
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
if(2)
sight |= SEE_MOBS
- if(!druggy) see_invisible = 2
+ if(!druggy) see_invisible = SEE_INVISIBLE_LEVEL_TWO
if(3)
sight |= SEE_TURFS
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
if(glasses)
if(istype(glasses, /obj/item/clothing/glasses/meson))
sight |= SEE_TURFS
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_MINIMUM
else if(istype(glasses, /obj/item/clothing/glasses/night))
see_in_dark = 5
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_MINIMUM
else if(istype(glasses, /obj/item/clothing/glasses/thermal))
sight |= SEE_MOBS
- if(!druggy) see_invisible = 2
+ if(!druggy) see_invisible = SEE_INVISIBLE_MINIMUM
else if(istype(glasses, /obj/item/clothing/glasses/material))
sight |= SEE_OBJS
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_MINIMUM
/* HUD shit goes here, as long as it doesn't modify sight flags */
// The purpose of this is to stop xray and w/e from preventing you from using huds -- Love, Doohl
@@ -868,18 +868,18 @@
if(istype(glasses, /obj/item/clothing/glasses/sunglasses/sechud))
var/obj/item/clothing/glasses/sunglasses/sechud/O = glasses
if(O.hud) O.hud.process_hud(src)
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
else if(istype(glasses, /obj/item/clothing/glasses/hud))
var/obj/item/clothing/glasses/hud/health/O = glasses
if(istype(O, /obj/item/clothing/glasses/hud/health))
O.process_hud(src)
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
else if(istype(O, /obj/item/clothing/glasses/hud/security))
O.process_hud(src)
- if(!druggy) see_invisible = 0
+ if(!druggy) see_invisible = SEE_INVISIBLE_LIVING
if(sleep && !hal_crit) sleep.icon_state = "sleep[sleeping]" //used?
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index af6d64f90fa..f3080297b86 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -468,13 +468,13 @@
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (stat != 2)
sight &= ~SEE_TURFS
sight &= ~SEE_MOBS
sight &= ~SEE_OBJS
see_in_dark = 2
- see_invisible = 0
+ see_invisible = SEE_INVISIBLE_LIVING
if (sleep) sleep.icon_state = text("sleep[]", sleeping)
if (rest) rest.icon_state = text("rest[]", resting)
diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm
index ea25b9fcc5c..6cac153e2c2 100644
--- a/code/modules/mob/living/silicon/ai/death.dm
+++ b/code/modules/mob/living/silicon/ai/death.dm
@@ -7,7 +7,7 @@
if(blind) blind.layer = 0
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
var/callshuttle = 0
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index 37b0513ba5d..8389aec7755 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -58,7 +58,7 @@
src.sight |= SEE_MOBS
src.sight |= SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
var/area/home = get_area(src)
if(!home) return//something to do with malf fucking things up I guess. <-- aisat is gone. is this still necessary? ~Carn
@@ -94,7 +94,7 @@
src.sight = src.sight&~SEE_MOBS
src.sight = src.sight&~SEE_OBJS
src.see_in_dark = 0
- src.see_invisible = 0
+ src.see_invisible = SEE_INVISIBLE_LIVING
if (((!loc.master.power_equip) || istype(T, /turf/space)) && !istype(src.loc,/obj/item))
if (src:aiRestorePowerRoutine==0)
diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm
index 9f422fdd9b6..127091a854c 100644
--- a/code/modules/mob/living/silicon/pai/death.dm
+++ b/code/modules/mob/living/silicon/pai/death.dm
@@ -5,7 +5,7 @@
if(blind) blind.layer = 0
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
//var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
//mind.store_memory("Time of death: [tod]", 0)
diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm
index c3febf18cc3..a0c08ad3489 100644
--- a/code/modules/mob/living/silicon/robot/death.dm
+++ b/code/modules/mob/living/silicon/robot/death.dm
@@ -61,7 +61,7 @@
if(blind) blind.layer = 0
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
- see_invisible = 2
+ see_invisible = SEE_INVISIBLE_LEVEL_TWO
updateicon()
tod = worldtime2text() //weasellos time of death patch
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 4b1492aa172..6e7277e112f 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -151,26 +151,26 @@
src.sight |= SEE_MOBS
src.sight |= SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (src.sight_mode & BORGMESON && src.sight_mode & BORGTHERM)
src.sight |= SEE_TURFS
src.sight |= SEE_MOBS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (src.sight_mode & BORGMESON)
src.sight |= SEE_TURFS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (src.sight_mode & BORGTHERM)
src.sight |= SEE_MOBS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (src.stat != 2)
src.sight &= ~SEE_MOBS
src.sight &= ~SEE_TURFS
src.sight &= ~SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
var/obj/item/borg/sight/hud/hud = (locate(/obj/item/borg/sight/hud) in src)
if(hud && hud.hud) hud.hud.process_hud(src)
diff --git a/code/setup.dm b/code/setup.dm
index 7b96a9a7030..4cac0c10519 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -402,4 +402,25 @@ var/list/liftable_structures = list(\
#define BANTYPE_ANY_FULLBAN 5 //used to locate stuff to unban.
//The number of deciseconds which someone needs to be inactive to be classified as AFK:
-#define AFK_THRESHOLD 3000
\ No newline at end of file
+#define AFK_THRESHOLD 3000
+
+
+
+#define SEE_INVISIBLE_MINIMUM 5
+
+#define SEE_INVISIBLE_OBSERVER_NOLIGHTING 15
+
+#define INVISIBILITY_LIGHTING 20
+
+#define SEE_INVISIBLE_LIVING 25
+
+#define SEE_INVISIBLE_OBSERVER 30
+#define INVISIBILITY_OBSERVER 30
+
+#define SEE_INVISIBLE_LEVEL_ONE 35 //Used by some stuff in code. It's really poorly organized.
+#define INVISIBILITY_LEVEL_ONE 35 //Used by some stuff in code. It's really poorly organized.
+
+#define SEE_INVISIBLE_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized.
+#define INVISIBILITY_LEVEL_TWO 45 //Used by some other stuff in code. It's really poorly organized.
+
+#define INVISIBILITY_MAXIMUM 100
\ No newline at end of file
diff --git a/code/unused/hivebot/death.dm b/code/unused/hivebot/death.dm
index fda74c6c0fd..43e7c257a53 100644
--- a/code/unused/hivebot/death.dm
+++ b/code/unused/hivebot/death.dm
@@ -11,7 +11,7 @@
src.sight |= SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
src.updateicon()
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
diff --git a/code/unused/hivebot/life.dm b/code/unused/hivebot/life.dm
index b87152cf328..119efcaaa01 100644
--- a/code/unused/hivebot/life.dm
+++ b/code/unused/hivebot/life.dm
@@ -121,13 +121,13 @@
src.sight |= SEE_MOBS
src.sight |= SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
else if (src.stat != 2)
src.sight &= ~SEE_MOBS
src.sight &= ~SEE_TURFS
src.sight &= ~SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
if (src.healths)
if (src.stat != 2)
diff --git a/code/unused/hivebot/mainframe.dm b/code/unused/hivebot/mainframe.dm
index ca65e940f1b..c3424dbd441 100644
--- a/code/unused/hivebot/mainframe.dm
+++ b/code/unused/hivebot/mainframe.dm
@@ -48,7 +48,7 @@
src.sight |= SEE_MOBS
src.sight |= SEE_OBJS
src.see_in_dark = 8
- src.see_invisible = 2
+ src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
src.lying = 1
src.icon_state = "hive_main-crash"