diff --git a/code/WorkInProgress/virus2/base.dm b/code/WorkInProgress/virus2/base.dm
index f0d6f4d78c..6676ac73be 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 5ad38fda35..0f3e6cdbef 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 8e6d241673..93f4bfd878 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 a955848eff..7f4fa0ff00 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 3286a1d26c..a671248db2 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 0a92cba6dc..ad152e5cb6 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 3dde2854cd..f849bf7735 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 8f528ecdb2..7000471dff 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 17e8159ba1..535c3fea00 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 5c53b40797..b1b8c71b8f 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 893717d067..8b9fd520e8 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 c57e92fb3e..ce30397a0c 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 c5c4069ac4..7fbda2b62d 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 3ca15fafc0..680b92c97e 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 2f51aa3931..5db176da46 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 1d81426c8c..e49c166f1b 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 ff3b8283c6..a501db763f 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 991f0de09e..25bd39f3f7 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 5c57f16d10..f7eb90cbbd 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 d518de37bd..6ce3bd9b85 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 92c350d727..783c66c399 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 af6d64f90f..f3080297b8 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 ea25b9fcc5..6cac153e2c 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 37b0513ba5..8389aec775 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 9f422fdd9b..127091a854 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 c3febf18cc..a0c08ad348 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 4b1492aa17..6e7277e112 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 7b96a9a703..4cac0c1051 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 fda74c6c0f..43e7c257a5 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 b87152cf32..119efcaaa0 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 ca65e940f1..c3424dbd44 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"