diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 224b3e67479..a368e735e72 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -552,4 +552,5 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define ADMIN_COLOUR_PRIORITY 1 //only used by rare effects like greentext coloring mobs and when admins varedit color
#define TEMPORARY_COLOUR_PRIORITY 2 //e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
#define WASHABLE_COLOUR_PRIORITY 3 //color splashed onto an atom (e.g. paint on turf)
-#define FIXED_COLOUR_PRIORITY 4 //color inherent to the atom (e.g. blob color)
\ No newline at end of file
+#define FIXED_COLOUR_PRIORITY 4 //color inherent to the atom (e.g. blob color)
+#define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are.
\ No newline at end of file
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 1cc608b007d..ca5b756c676 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1307,10 +1307,10 @@ proc/pick_closest_path(value)
if(!istype(C))
return
- var/old_color = C.color
+
C.color = flash_color
spawn(0)
- animate(C, color = old_color, time = flash_time)
+ animate(C, color = initial(C.color), time = flash_time)
#define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255)))
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index 494b9ed9984..2a8c85d802e 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -100,11 +100,13 @@
/datum/status_effect/inathneqs_endowment/on_apply()
owner.visible_message("[owner] shines with azure light!", "You feel Inath-neq's power flow through you! You're invincible!")
+ var/oldcolor = owner.color
owner.color = "#1E8CE1"
owner.fully_heal()
owner.add_stun_absorption("inathneq", 150, 2, "'s flickering blue aura momentarily intensifies!", "Inath-neq's power absorbs the stun!", " glowing with a flickering blue light!")
owner.status_flags |= GODMODE
- animate(owner, color = initial(owner.color), time = 150, easing = EASE_IN)
+ animate(owner, color = oldcolor, time = 150, easing = EASE_IN)
+ addtimer(owner, "update_atom_colour", 150)
playsound(owner, 'sound/magic/Ethereal_Enter.ogg', 50, 1)
/datum/status_effect/inathneqs_endowment/on_remove()
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 71c76881d63..77070de904c 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -19,6 +19,19 @@
//overlays that should remain on top and not normally be removed, like c4.
var/list/priority_overlays
+ var/list/atom_colours //used to store the different colors on an atom
+ //its inherent color, the colored paint applied on it, special color effect etc...
+
+
+/atom/New()
+ //atom creation method that preloads variables at creation
+ if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
+ _preloader.load(src)
+
+ if(color)
+ add_atom_colour(color, FIXED_COLOUR_PRIORITY)
+ . = ..()
+
/atom/Destroy()
if(alternate_appearances)
for(var/aakey in alternate_appearances)
@@ -455,16 +468,14 @@ var/list/blood_splatter_icons = list()
"whichever was set last is displayed"
*/
-/atom
- var/list/atom_colours //used to store the different colors on an atom
- //its inherent color, the colored paint applied on it, special color effect etc...
/*
Adds an instance of colour_type to the atom's atom_colours list
*/
/atom/proc/add_atom_colour(coloration, colour_priority)
- if(!atom_colours)
- atom_colours = list("", "", "", "") //four priority levels currently.
+ if(!atom_colours || !atom_colours.len)
+ atom_colours = list()
+ atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently.
if(!coloration)
return
if(colour_priority > atom_colours.len)
@@ -476,12 +487,15 @@ var/list/blood_splatter_icons = list()
/*
Removes an instance of colour_type from the atom's atom_colours list
*/
-/atom/proc/remove_atom_colour(colour_priority)
+/atom/proc/remove_atom_colour(colour_priority, coloration)
if(!atom_colours)
- atom_colours = list("", "", "", "")
+ atom_colours = list()
+ atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently.
if(colour_priority > atom_colours.len)
return
- atom_colours[colour_priority] = ""
+ if(coloration && atom_colours[colour_priority] != coloration)
+ return //if we don't have the expected color (for a specific priority) to remove, do nothing
+ atom_colours[colour_priority] = null
update_atom_colour()
@@ -491,7 +505,8 @@ var/list/blood_splatter_icons = list()
*/
/atom/proc/update_atom_colour()
if(!atom_colours)
- atom_colours = list("", "", "", "")
+ atom_colours = list()
+ atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently.
color = null
for(var/C in atom_colours)
if(islist(C))
@@ -499,7 +514,7 @@ var/list/blood_splatter_icons = list()
if(L.len)
color = L
return
- else if(C != "")
+ else if(C)
color = C
return
diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm
index 7bee738d891..3e504c397a9 100644
--- a/code/game/gamemodes/antag_spawner.dm
+++ b/code/game/gamemodes/antag_spawner.dm
@@ -288,7 +288,6 @@
icon = 'icons/obj/wizard.dmi'
icon_state = "vial"
color = "#FF69B4" // HOT PINK
- atom_colours = list("", "", "", "#FF69B4")
veil_msg = "You sense an adorable presence lurking just beyond the veil..."
objective_verb = "Hug and Tickle"
diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm
index 03ef7f76bb1..2bc1f1bb12f 100644
--- a/code/game/gamemodes/blob/blobs/core.dm
+++ b/code/game/gamemodes/blob/blobs/core.dm
@@ -1,7 +1,7 @@
/obj/structure/blob/core
name = "blob core"
icon = 'icons/mob/blob.dmi'
- icon_state = "blob"
+ icon_state = "blank_blob"
desc = "A huge, pulsating yellow mass."
obj_integrity = 400
max_integrity = 400
@@ -32,7 +32,11 @@
/obj/structure/blob/core/update_icon()
cut_overlays()
- ..()
+ color = null
+ var/image/I = new('icons/mob/blob.dmi', "blob")
+ if(overmind)
+ I.color = overmind.blob_reagent_datum.color
+ add_overlay(I)
var/image/C = new('icons/mob/blob.dmi', "blob_core_overlay")
add_overlay(C)
diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm
index 14b38148950..426e76b9e5b 100644
--- a/code/game/gamemodes/blob/blobs/node.dm
+++ b/code/game/gamemodes/blob/blobs/node.dm
@@ -1,7 +1,7 @@
/obj/structure/blob/node
name = "blob node"
icon = 'icons/mob/blob.dmi'
- icon_state = "blob"
+ icon_state = "blank_blob"
desc = "A large, pulsating yellow mass."
obj_integrity = 200
max_integrity = 200
@@ -20,7 +20,11 @@
/obj/structure/blob/node/update_icon()
cut_overlays()
- ..()
+ color = null
+ var/image/I = new('icons/mob/blob.dmi', "blob")
+ if(overmind)
+ I.color = overmind.blob_reagent_datum.color
+ add_overlay(I)
var/image/C = new('icons/mob/blob.dmi', "blob_node_overlay")
add_overlay(C)
diff --git a/code/game/gamemodes/clock_cult/clock_scripture.dm b/code/game/gamemodes/clock_cult/clock_scripture.dm
index b8356068e37..0a1dd481425 100644
--- a/code/game/gamemodes/clock_cult/clock_scripture.dm
+++ b/code/game/gamemodes/clock_cult/clock_scripture.dm
@@ -366,8 +366,9 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed
L.Weaken(1)
invoker.visible_message("[invoker] is suddenly covered with a thin layer of dark purple smoke!")
var/invoker_old_color = invoker.color
- invoker.add_atom_colour("#AF0AAF", TEMPORARY_COLOUR_PRIORITY)
+ invoker.color = "#AF0AAF"
animate(invoker, color = invoker_old_color, time = flee_time+grace_period)
+ addtimer(invoker, "update_atom_colour", flee_time+grace_period)
if(chant_number != chant_amount) //if this is the last chant, we don't have a movement period because the chant is over
var/endtime = world.time + flee_time
var/starttime = world.time
@@ -1136,7 +1137,8 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed
You feel limitless power surging through you!")
playsound(invoker, 'sound/magic/clockwork/invoke_general.ogg', 50, 0)
playsound(invoker, 'sound/magic/lightning_chargeup.ogg', 100, 0)
- animate(invoker, color = "#FFFF00", time = 88) //Gradual advancement to extreme brightness
+ var/oldcolor = invoker.color
+ animate(invoker, color = list(rgb(255, 255, 255), rgb(255, 255, 255), rgb(255, 255, 255), rgb(0,0,0)), time = 88) //Gradual advancement to extreme brightness
sleep(88)
if(invoker)
invoker.visible_message("Massive bolts of energy emerge from across [invoker]'s body!", \
@@ -1144,7 +1146,8 @@ Judgement: 10 servants, 100 CV, and any existing AIs are converted or destroyed
TOO... MUCH! CAN'T... TAKE IT!")
playsound(invoker, 'sound/magic/lightningbolt.ogg', 100, 0)
if(invoker.stat == CONSCIOUS)
- invoker.update_atom_colour()
+ animate(invoker, color = oldcolor, time = 10)
+ addtimer(invoker, "update_atom_colour", 10)
for(var/mob/living/L in view(7, invoker))
if(is_servant_of_ratvar(L))
continue
diff --git a/code/game/gamemodes/clock_cult/clock_structures.dm b/code/game/gamemodes/clock_cult/clock_structures.dm
index c7c352f1ad4..543b599a7b2 100644
--- a/code/game/gamemodes/clock_cult/clock_structures.dm
+++ b/code/game/gamemodes/clock_cult/clock_structures.dm
@@ -34,6 +34,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/structure/destructible/clockwork/examine(mob/user)
var/can_see_clockwork = is_servant_of_ratvar(user) || isobserver(user)
@@ -770,6 +771,7 @@
/obj/effect/clockwork/sigil/submission/sigil_effects(mob/living/L)
L.visible_message("[src] begins to glow a piercing magenta!", "You feel something start to invade your mind...")
+ var/oldcolor = color
animate(src, color = "#AF0AAF", time = convert_time)
var/obj/effect/overlay/temp/ratvar/sigil/glow
if(glow_type)
@@ -782,7 +784,8 @@
if(get_turf(L) != get_turf(src))
if(glow)
qdel(glow)
- animate(src, color = initial(color), time = 20)
+ animate(src, color = oldcolor, time = 20)
+ addtimer(src, "update_atom_colour", 20)
visible_message("[src] slowly stops glowing!")
return 0
post_channel(L)
@@ -807,7 +810,8 @@
if(delete_on_finish)
qdel(src)
else
- animate(src, color = initial(color), time = 20)
+ animate(src, color = oldcolor, time = 20)
+ addtimer(src, "update_atom_colour", 20)
visible_message("[src] slowly stops glowing!")
return 1
diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index d26dc3486de..536d2c8c579 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -46,6 +46,7 @@
var/previouscolor = color
color = "#FAE48C"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/structure/destructible/cult/proc/getETA()
var/time = (cooldowntime - world.time)/600
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index abf243b5822..88140a9e89f 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -151,8 +151,10 @@ structure_check() searches for nearby cultist structures required for the invoca
visible_message("The markings pulse with a \
small flash of red light, then fall dark.")
spawn(0) //animate is a delay, we want to avoid being delayed
- animate(src, color = rgb(255, 0, 0), time = 0)
- animate(src, color = initial(color), time = 5)
+ var/oldcolor = color
+ color = rgb(255, 0, 0)
+ animate(src, color = oldcolor, time = 5)
+ addtimer(src, "update_atom_colour", 5)
//Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user.
/obj/effect/rune/malformed
@@ -354,6 +356,7 @@ var/list/teleport_runes = list()
return
rune_in_use = TRUE
visible_message("[src] pulses blood red!")
+ var/oldcolor = color
color = "#7D1717"
var/mob/living/L = pick(myriad_targets)
var/is_clock = is_servant_of_ratvar(L)
@@ -372,7 +375,8 @@ var/list/teleport_runes = list()
invocation = "Barhah hra zar'garis!"
..()
do_sacrifice(L, invokers)
- animate(src, color = initial(color), time = 5)
+ animate(src, color = oldcolor, time = 5)
+ addtimer(src, "update_atom_colour", 5)
rune_in_use = FALSE
/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers)
@@ -774,8 +778,10 @@ var/list/wall_runes = list()
recharging = TRUE
density = FALSE
update_state()
+ var/oldcolor = color
color = "#696969"
- animate(src, color = initial(color), time = 50, easing = EASE_IN)
+ animate(src, oldcolor, time = 50, easing = EASE_IN)
+ addtimer(src, "update_atom_colour", 50)
addtimer(src, "recharge", 50)
/obj/effect/rune/wall/proc/recharge()
diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm
index a44b36add24..5f95588ac4d 100644
--- a/code/game/gamemodes/miniantags/abduction/gland.dm
+++ b/code/game/gamemodes/miniantags/abduction/gland.dm
@@ -211,7 +211,6 @@
icon = 'icons/effects/effects.dmi'
icon_state = "cocoon_large3"
color = rgb(10,120,10)
- atom_colours = list("", "", "", rgb(10,120,10))
density = 1
var/hatch_time = 0
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_blight.dm b/code/game/gamemodes/miniantags/revenant/revenant_blight.dm
index 9e03b9dc041..4d1f4096071 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_blight.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_blight.dm
@@ -17,7 +17,7 @@
/datum/disease/revblight/cure()
if(affected_mob)
- affected_mob.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
+ affected_mob.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#1d2953")
affected_mob << "You feel better."
..()
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 8672b2110d7..5a9f6541a52 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -515,10 +515,15 @@ This is here to make the tiles around the station mininuke change when it's arme
user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(user.loc, 'sound/machines/Alarm.ogg', 50, -1, 1)
var/end_time = world.time + 100
+ var/newcolor = "#00FF00"
while(world.time < end_time)
if(!user)
return
- user.add_atom_colour(RANDOM_COLOUR, ADMIN_COLOUR_PRIORITY)
+ if(newcolor == "#FF0000")
+ newcolor = "#00FF00"
+ else
+ newcolor = "#FF0000"
+ user.add_atom_colour(newcolor, ADMIN_COLOUR_PRIORITY)
sleep(1)
user.remove_atom_colour(ADMIN_COLOUR_PRIORITY)
user.visible_message("[user] was destroyed by the nuclear blast!")
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 97e147448c3..25f40a0f2e5 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -441,6 +441,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/machinery/door/airlock/clockwork/attackby(obj/item/I, mob/living/user, params)
if(!attempt_construction(I, user))
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 8156c85e34b..beb514fed72 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -336,6 +336,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/machinery/door/window/clockwork/allowed(mob/M)
if(is_servant_of_ratvar(M))
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 69e747a26a5..fe6ee93fab7 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -64,8 +64,7 @@
/obj/structure/emergency_shield/invoker
name = "Invoker's Shield"
desc = "A weak shield summoned by cultists to protect them while they carry out delicate rituals"
- color = "red"
- atom_colours = list("", "", "", "red")
+ color = "#FF0000"
obj_integrity = 20
max_integrity = 20
mouse_opacity = 0
diff --git a/code/game/mecha/combat/reticence.dm b/code/game/mecha/combat/reticence.dm
index 1fc1fdc9223..d0b0d00b176 100644
--- a/code/game/mecha/combat/reticence.dm
+++ b/code/game/mecha/combat/reticence.dm
@@ -16,7 +16,6 @@
max_equip = 2
step_energy_drain = 3
color = "#87878715"
- atom_colours = list("", "", "", "#87878715")
stepsound = null
turnsound = null
opacity = 0
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index 3e03de8ffe6..f60b14f7202 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -103,7 +103,6 @@
name = "\improper Reticence wreckage"
icon_state = "reticence-broken"
color = "#87878715"
- atom_colours = list("", "", "", "#87878715")
/obj/structure/mecha_wreckage/ripley
name = "\improper Ripley wreckage"
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index f65b4aa0318..e7cea3cbab6 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -24,8 +24,7 @@
M.Turn(rotation)
src.transform = M
- color = main
- atom_colours[FIXED_COLOUR_PRIORITY] = main
+ add_atom_colour(main, FIXED_COLOUR_PRIORITY)
/obj/effect/decal/cleanable/crayon/gang
diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm
index b6e4fc5e0a3..7e3914a5488 100644
--- a/code/game/objects/effects/effect_system/effects_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_smoke.dm
@@ -201,7 +201,6 @@
/obj/effect/particle_effect/smoke/sleeping
color = "#9C3636"
- atom_colours = list("", "", "", "#9C3636")
lifetime = 10
/obj/effect/particle_effect/smoke/sleeping/smoke_mob(mob/living/carbon/M)
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 712096db455..cf066f0f46a 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -114,8 +114,7 @@
name = "Red Orb"
desc = "You feel angry just looking at it."
duration = 1200 //2min
- color = "red"
- atom_colours = list("", "", "", "red")
+ color = "#FF0000"
/obj/effect/mine/pickup/bloodbath/mineEffect(mob/living/carbon/victim)
if(!victim.client || !istype(victim))
@@ -149,8 +148,7 @@
/obj/effect/mine/pickup/healing
name = "Blue Orb"
desc = "You feel better just looking at it."
- color = "blue"
- atom_colours = list("", "", "", "blue")
+ color = "#0000FF"
/obj/effect/mine/pickup/healing/mineEffect(mob/living/carbon/victim)
if(!victim.client || !istype(victim))
@@ -161,8 +159,7 @@
/obj/effect/mine/pickup/speed
name = "Yellow Orb"
desc = "You feel faster just looking at it."
- color = "yellow"
- atom_colours = list("", "", "", "yellow")
+ color = "#FFFF00"
duration = 300
/obj/effect/mine/pickup/speed/mineEffect(mob/living/carbon/victim)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index a89449e5a9c..ae47d2f0172 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -59,7 +59,6 @@
name = "bluespace cryptographic sequencer"
desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it."
color = rgb(40, 130, 255)
- atom_colours = list("", "", "", rgb(40, 130, 255))
origin_tech = "bluespace=4;magnets=4;syndicate=5"
prox_check = FALSE
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 6a517fc438d..4c44dcbceb0 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -456,6 +456,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "lighter"
/obj/item/weapon/lighter/greyscale/New()
+ ..()
var/image/I = image(icon,"lighter-overlay")
var/newcolor = color2hex(randomColor(1))
add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index 0567b7465ea..2e9013e27d9 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -128,7 +128,6 @@
desc = "It looks comfy.\nAlt-click to rotate it clockwise."
icon_state = "comfychair"
color = rgb(255,255,255)
- atom_colours = list("", "", "", rgb(255,255,255))
resistance_flags = FLAMMABLE
obj_integrity = 70
max_integrity = 70
@@ -139,7 +138,6 @@
/obj/structure/chair/comfy/New()
armrest = image("icons/obj/chairs.dmi", "comfychair_armrest")
armrest.layer = ABOVE_MOB_LAYER
-
return ..()
/obj/structure/chair/comfy/post_buckle_mob(mob/living/M)
@@ -151,23 +149,18 @@
/obj/structure/chair/comfy/brown
color = rgb(255,113,0)
- atom_colours = list("", "", "", rgb(255,113,0))
/obj/structure/chair/comfy/beige
color = rgb(255,253,195)
- atom_colours = list("", "", "", rgb(255,253,195))
/obj/structure/chair/comfy/teal
color = rgb(0,255,255)
- atom_colours = list("", "", "", rgb(0,255,255))
/obj/structure/chair/comfy/black
color = rgb(167,164,153)
- atom_colours = list("", "", "", rgb(167,164,153))
/obj/structure/chair/comfy/lime
color = rgb(255,251,0)
- atom_colours = list("", "", "", rgb(255,251,0))
/obj/structure/chair/office
anchored = 0
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 0cf89e51d3c..bf178016a3b 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -239,6 +239,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/structure/grille/ratvar/ratvar_act()
return
diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm
index e6affabaab5..69605930014 100644
--- a/code/game/objects/structures/table_frames.dm
+++ b/code/game/objects/structures/table_frames.dm
@@ -151,3 +151,4 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 72468918b2c..86a857e8e9c 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -335,6 +335,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/structure/table/reinforced/brass/ratvar_act()
obj_integrity = max_integrity
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 9f22dab9e9b..35f7a4c56f1 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -541,7 +541,6 @@
icon = 'icons/obj/watercloset.dmi'
icon_state = "open"
color = "#ACD1E9" //Default color, didn't bother hardcoding other colors, mappers can and should easily change it.
- atom_colours = list("", "", "", "#ACD1E9")
alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through
layer = WALL_OBJ_LAYER
anchored = 1
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 983af14409c..bc6f90a1e98 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -498,6 +498,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/obj/structure/window/reinforced/clockwork/fulltile
icon_state = "clockwork_window"
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index b3c038b2f3b..577e033c0af 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -144,6 +144,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/turf/open/floor/bluespace
@@ -165,7 +166,6 @@
/turf/open/floor/vines
color = "#aa77aa"
- atom_colours = list("", "", "", "#aa77aa")
icon_state = "vinefloor"
broken_states = list()
diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm
index 9ee7121ff9e..00f5fe4fda8 100644
--- a/code/game/turfs/simulated/floor/reinf_floor.dm
+++ b/code/game/turfs/simulated/floor/reinf_floor.dm
@@ -142,6 +142,7 @@
var/previouscolor = color
color = "#FAE48C"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/turf/open/floor/engine/cult/airless
initial_gas_mix = "TEMP=2.7"
diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm
index 5646d40752f..7bbd9122ee4 100644
--- a/code/game/turfs/simulated/wall/mineral_walls.dm
+++ b/code/game/turfs/simulated/wall/mineral_walls.dm
@@ -200,8 +200,9 @@
T.icon_state = icon_state
if(T.icon != icon)
T.icon = icon
- T.atom_colours = atom_colours.Copy()
- T.update_atom_colour()
+ if(color)
+ T.atom_colours = atom_colours.Copy()
+ T.update_atom_colour()
if(T.dir != dir)
T.dir = dir
T.transform = transform
@@ -229,8 +230,9 @@
T.icon_state = icon_state
if(T.icon != icon)
T.icon = icon
- T.atom_colours = atom_colours.Copy()
- T.update_atom_colour()
+ if(color)
+ T.atom_colours = atom_colours.Copy()
+ T.update_atom_colour()
if(T.dir != dir)
T.dir = dir
T.transform = transform
diff --git a/code/game/turfs/simulated/wall/misc_walls.dm b/code/game/turfs/simulated/wall/misc_walls.dm
index 3c0933e5839..6320b21860f 100644
--- a/code/game/turfs/simulated/wall/misc_walls.dm
+++ b/code/game/turfs/simulated/wall/misc_walls.dm
@@ -26,6 +26,7 @@
var/previouscolor = color
color = "#FAE48C"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/turf/closed/wall/mineral/cult/artificer
name = "runed stone wall"
@@ -103,6 +104,7 @@
var/previouscolor = color
color = "#960000"
animate(src, color = previouscolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
/turf/closed/wall/clockwork/dismantle_wall(devastated=0, explode=0)
if(devastated)
diff --git a/code/game/turfs/simulated/wall/shuttle_walls.dm b/code/game/turfs/simulated/wall/shuttle_walls.dm
index 574423aedf8..4f6ab5587ee 100644
--- a/code/game/turfs/simulated/wall/shuttle_walls.dm
+++ b/code/game/turfs/simulated/wall/shuttle_walls.dm
@@ -57,8 +57,9 @@
T.icon_state = icon_state
if(T.icon != icon)
T.icon = icon
- T.atom_colours = atom_colours.Copy()
- T.update_atom_colour()
+ if(color)
+ T.atom_colours = atom_colours.Copy()
+ T.update_atom_colour()
if(T.dir != dir)
T.setDir(dir)
T.transform = transform
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index a1b17128f5e..c8add176260 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -363,8 +363,9 @@
T.icon_state = icon_state
if(T.icon != icon)
T.icon = icon
- T.atom_colours = atom_colours.Copy()
- T.update_atom_colour()
+ if(color)
+ T.atom_colours = atom_colours.Copy()
+ T.update_atom_colour()
if(T.dir != dir)
T.setDir(dir)
return T
diff --git a/code/modules/awaymissions/maploader/reader.dm b/code/modules/awaymissions/maploader/reader.dm
index 925d8ed199e..69b3add44e9 100644
--- a/code/modules/awaymissions/maploader/reader.dm
+++ b/code/modules/awaymissions/maploader/reader.dm
@@ -362,13 +362,6 @@ var/global/dmm_suite/preloader/_preloader = new
return to_return
-//atom creation method that preloads variables at creation
-/atom/New()
- if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
- _preloader.load(src)
-
- . = ..()
-
/dmm_suite/Destroy()
..()
return QDEL_HINT_HARDDEL_NOW
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index 17f88eacb51..08815bda3fd 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -295,7 +295,6 @@
icon = 'icons/obj/rune.dmi'
icon_state = "1"
color = rgb(0,0,255)
- atom_colours = list("", "", "", rgb(0,0,255))
/obj/structure/ladder/unbreakable/rune/update_icon()
return
diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm
index a6afd61d86a..6314d18de4f 100644
--- a/code/modules/awaymissions/mission_code/snowdin.dm
+++ b/code/modules/awaymissions/mission_code/snowdin.dm
@@ -216,7 +216,6 @@ obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female
minbodytemp = 0
maxbodytemp = 1500
color = rgb(114,228,250)
- atom_colours = list("", "", "", rgb(114,228,250))
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice
name = "giant ice spider"
@@ -224,7 +223,6 @@ obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female
minbodytemp = 0
maxbodytemp = 1500
color = rgb(114,228,250)
- atom_colours = list("", "", "", rgb(114,228,250))
/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice
name = "giant ice spider"
@@ -232,17 +230,15 @@ obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female
minbodytemp = 0
maxbodytemp = 1500
color = rgb(114,228,250)
- atom_colours = list("", "", "", rgb(114,228,250))
//objs//--
/obj/structure/flora/rock/icy
name = "icy rock"
color = rgb(114,228,250)
- atom_colours = list("", "", "", rgb(114,228,250))
/obj/structure/flora/rock/pile/icy
name = "icey rocks"
color = rgb(114,228,250)
- atom_colours = list("", "", "", rgb(114,228,250))
+
diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm
index b845df7c25a..bbae5b261fc 100644
--- a/code/modules/clothing/head/beanie.dm
+++ b/code/modules/clothing/head/beanie.dm
@@ -7,11 +7,6 @@
icon_state = "beanie" //Default white
item_color = "beanie"
-/obj/item/clothing/head/beanie/New()
- ..()
- if(color)
- add_atom_colour(color, FIXED_COLOUR_PRIORITY)
-
/obj/item/clothing/head/beanie/black
name = "black beanie"
icon_state = "beanie"
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 01c2c163e90..130aa815b7e 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -133,7 +133,6 @@
desc = "A pair of kitty ears. Meow!"
icon_state = "kitty"
color = "#999999"
- atom_colours = list("", "", "", "#999999")
dog_fashion = /datum/dog_fashion/head/kitty
diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm
index 17142d8bb46..fb4a63f3786 100644
--- a/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/code/modules/clothing/spacesuits/chronosuit.dm
@@ -89,7 +89,7 @@
user.SetStunned(0)
user.next_move = 1
user.alpha = 255
- user.color = "#ffffff"
+ user.update_atom_colour()
user.animate_movement = FORWARD_STEPS
user.notransform = 0
user.anchored = 0
diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm
index 683b065b36a..0fa1d3b7b44 100644
--- a/code/modules/clothing/under/ties.dm
+++ b/code/modules/clothing/under/ties.dm
@@ -270,11 +270,6 @@
item_color = "scarf"
dog_fashion = /datum/dog_fashion/head
-/obj/item/clothing/tie/scarf/New()
- ..()
- if(color)
- add_atom_colour(color, FIXED_COLOUR_PRIORITY)
-
/obj/item/clothing/tie/scarf/black
name = "black scarf"
icon_state = "scarf"
diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm
index 8869ad2220c..aba0bccfb45 100644
--- a/code/modules/events/wizard/magicarp.dm
+++ b/code/modules/events/wizard/magicarp.dm
@@ -46,7 +46,6 @@
name = "chaos magicarp"
desc = "50% carp, 100% magic, 150% horrible."
color = "#00FFFF"
- atom_colours = list("", "", "", "#00FFFF")
maxHealth = 75
health = 75
diff --git a/code/modules/food_and_drinks/food/snacks_burgers.dm b/code/modules/food_and_drinks/food/snacks_burgers.dm
index 3fb0711b39e..77e04689317 100644
--- a/code/modules/food_and_drinks/food/snacks_burgers.dm
+++ b/code/modules/food_and_drinks/food/snacks_burgers.dm
@@ -18,11 +18,6 @@
desc = "A bloody burger."
bonus_reagents = list("vitamin" = 4)
-/obj/item/weapon/reagent_containers/food/snacks/burger/New()
- ..()
- if(color)
- add_atom_colour(color, FIXED_COLOUR_PRIORITY)
-
/obj/item/weapon/reagent_containers/food/snacks/burger/human/CheckParts(list/parts_list)
..()
var/obj/item/weapon/reagent_containers/food/snacks/meat/M = locate(/obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human) in contents
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 8b867af2ff0..3929e4c0ed4 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -720,7 +720,6 @@
icon = 'icons/obj/wizard.dmi'
icon_state = "scroll2"
color = "#FF0000"
- atom_colours = list("", "", "", "#FF0000")
desc = "Mark your target for death. "
var/used = FALSE
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 44db183f45f..95ee3b29d57 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -117,11 +117,13 @@ var/list/image/ghost_images_simple = list() //this is a list of all ghost images
var/old_color = color
color = "#960000"
animate(src, color = old_color, time = 10)
+ addtimer(src, "update_atom_colour", 10)
/mob/dead/observer/ratvar_act()
var/old_color = color
color = "#FAE48C"
animate(src, color = old_color, time = 10)
+ addtimer(src, "update_atom_colour", 10)
/mob/dead/observer/Destroy()
ghost_images_full -= ghostimage
diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm
index 5927ac136de..b8553642f12 100644
--- a/code/modules/mob/living/bloodcrawl.dm
+++ b/code/modules/mob/living/bloodcrawl.dm
@@ -146,13 +146,13 @@
/mob/living/proc/exit_blood_effect(obj/effect/decal/cleanable/B)
playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1)
//Makes the mob have the color of the blood pool it came out of
+ var/newcolor = rgb(149, 10, 10)
if(istype(B, /obj/effect/decal/cleanable/xenoblood))
- add_atom_colour(rgb(43, 186, 0), TEMPORARY_COLOUR_PRIORITY)
- else
- add_atom_colour(rgb(149, 10, 10), TEMPORARY_COLOUR_PRIORITY)
+ newcolor = rgb(43, 186, 0)
+ add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY)
// but only for a few seconds
spawn(30)
- remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
+ remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, newcolor)
/mob/living/proc/phasein(obj/effect/decal/cleanable/B)
if(src.notransform)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 0ffa532c01b..abb37fd68f2 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -712,11 +712,11 @@
/mob/living/carbon/human/proc/electrocution_animation(anim_duration)
//Handle mutant parts if possible
if(dna && dna.species)
- add_atom_colour("black", TEMPORARY_COLOUR_PRIORITY)
+ add_atom_colour("#000000", TEMPORARY_COLOUR_PRIORITY)
add_overlay("electrocuted_base")
spawn(anim_duration)
if(src)
- remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
+ remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#000000")
overlays -= "electrocuted_base"
else //or just do a generic animation
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index 9d5c97f4831..61428ceef07 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -101,6 +101,7 @@ Difficulty: Hard
stat = DEAD
blinking = TRUE //we do a fancy animation, release a huge burst(), and leave our staff.
animate(src, alpha = 0, color = "660099", time = 20, easing = EASE_OUT)
+ addtimer(src, "update_atom_colour", 20)
burst_range = 10
//visible_message("\"Mrmxmexmrk wipj-hiwxvygx wiuyirgi...\"")
visible_message("[src] disappears in a massive burst of magic, leaving only its staff.")
@@ -197,6 +198,7 @@ Difficulty: Hard
if("blink_spam") //blink either once or multiple times.
if(health < maxHealth * 0.5 && !target_is_slow && blink_counter > 1)
//visible_message("\"Mx ampp rsx iwgeti.\"")
+ var/oldcolor = color
animate(src, color = "#660099", time = 6)
while(health && target && blink_counter)
if(loc == target.loc || loc == target) //we're on the same tile as them after about a second we can stop now
@@ -206,7 +208,8 @@ Difficulty: Hard
blink(target)
blinking = TRUE
sleep(5)
- animate(src, color = initial(color), time = 8)
+ animate(src, color = oldcolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
sleep(8)
blinking = FALSE
else
@@ -214,6 +217,7 @@ Difficulty: Hard
if("cross_blast_spam") //fire a lot of cross blasts at a target.
//visible_message("\"Piezi mx rsalivi xs vyr.\"")
blinking = TRUE
+ var/oldcolor = color
animate(src, color = "#660099", time = 6)
while(health && target && cross_counter)
cross_counter--
@@ -224,12 +228,14 @@ Difficulty: Hard
addtimer(src, "diagonal_blasts", 0, FALSE, target)
delay = 5 //this one isn't so mean, so do the next one faster(if there is one)
sleep(delay)
- animate(src, color = initial(color), time = 8)
+ animate(src, color = oldcolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
sleep(8)
blinking = FALSE
if("chaser_swarm") //fire four fucking chasers at a target and their friends.
//visible_message("\"Mx gerrsx lmhi.\"")
blinking = TRUE
+ var/oldcolor = color
animate(src, color = "#660099", time = 10)
var/list/targets = ListTargets()
var/list/cardinal_copy = cardinal.Copy()
@@ -244,7 +250,8 @@ Difficulty: Hard
C.moving_dir = pick_n_take(cardinal_copy)
sleep(10)
chaser_cooldown = world.time + initial(chaser_cooldown)
- animate(src, color = initial(color), time = 8)
+ animate(src, color = oldcolor, time = 8)
+ addtimer(src, "update_atom_colour", 8)
sleep(8)
blinking = FALSE
return
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index 5956e883f99..7fe53150aed 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -347,7 +347,6 @@
icon_aggro = "bloodbrood"
attacktext = "pierces"
color = "#C80000"
- atom_colours = list("", "", "" ,"#C80000")
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood/death()
if(loc) // Splash the turf we are on with blood
diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm
index 4cf7a07447f..f318f7ae15c 100644
--- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm
+++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm
@@ -79,5 +79,4 @@
maxHealth = 75
health = 75
color = rgb(114,228,250)
- atom_colours = list("", "", "", rgb(114,228,250))
loot = list(/obj/effect/decal/remains/human{color = rgb(114,228,250)})
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 5950181dbcb..a50171ecac6 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -945,7 +945,6 @@
name = "The Ghost of Poly"
desc = "Doomed to squawk the earth."
color = "#FFFFFF77"
- atom_colours = list("", "", "", "#FFFFFF77")
speak_chance = 20
status_flags = GODMODE
incorporeal_move = 1
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 3e6b6289b11..725f6fe6ef4 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -120,8 +120,7 @@
/obj/item/device/firing_pin/clown
name = "hilarious firing pin"
desc = "Advanced clowntech that can convert any firearm into a far more useful object."
- color = "yellow"
- atom_colours = list("", "", "", "yellow")
+ color = "#FFFF00"
fail_message = "HONK!"
force_replace = 1
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index 8011206af2b..c1e99013676 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -90,7 +90,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
return ..()
/datum/reagent/consumable/ethanol/beer/green/on_mob_delete(mob/living/M)
- M.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
+ M.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, color)
/datum/reagent/consumable/ethanol/kahlua
name = "Kahlua"
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index 4707c92dae4..7af40f4b5cd 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -647,7 +647,6 @@
name = "cerulean prints"
desc = "A one use yet of blueprints made of jelly like organic material. Renaming an area to 'Xenobiology Lab' will extend the reach of the management console."
color = "#2956B2"
- atom_colours = list("", "", "", "#2956B2")
/obj/item/areaeditor/blueprints/slime/edit_area()
var/success = ..()
diff --git a/code/modules/ruins/objects_and_mobs/sin_ruins.dm b/code/modules/ruins/objects_and_mobs/sin_ruins.dm
index 9834119f55f..a2de405894f 100644
--- a/code/modules/ruins/objects_and_mobs/sin_ruins.dm
+++ b/code/modules/ruins/objects_and_mobs/sin_ruins.dm
@@ -75,7 +75,6 @@
icon_state = "blob"
icon = 'icons/mob/blob.dmi'
color = rgb(145, 150, 0)
- atom_colours = list("", "", "", rgb(145, 150, 0))
/obj/effect/gluttony/CanPass(atom/movable/mover, turf/target, height=0)//So bullets will fly over and stuff.
if(height==0)
diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm
index f18eb002516..31fbe39e4bc 100644
--- a/code/modules/shuttle/special.dm
+++ b/code/modules/shuttle/special.dm
@@ -109,7 +109,7 @@
// Missing sleepers
for(var/i in sleepers - found)
var/mob/living/L = i
- L.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY)
+ L.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#800080")
L.visible_message("The glow from [L] fades \
away.")
L.grab_ghost()
diff --git a/code/modules/spells/spell_types/spacetime_distortion.dm b/code/modules/spells/spell_types/spacetime_distortion.dm
index da361db34d7..54a820a87b7 100644
--- a/code/modules/spells/spell_types/spacetime_distortion.dm
+++ b/code/modules/spells/spell_types/spacetime_distortion.dm
@@ -65,7 +65,6 @@
desc = "A distortion in spacetime. You can hear faint music..."
icon_state = "wave1"
color = "#8A2BE2"
- atom_colours = list("", "", "", "#8A2BE2")
var/obj/effect/cross_action/spacetime_dist/linked_dist
var/busy = FALSE
var/sound
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index d2275efa5ce..a2acadb0f93 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -550,5 +550,4 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "severedtail"
color = "#161"
- atom_colours = list("", "", "", "#161")
var/markings = "Smooth"