diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm
index 7903136a63f..75d8943b81d 100644
--- a/code/modules/clothing/spacesuits/rig/rig.dm
+++ b/code/modules/clothing/spacesuits/rig/rig.dm
@@ -214,6 +214,17 @@
var/seal_target = !canremove
var/failed_to_seal
+ var/obj/screen/rig_booting/booting_L = new
+ var/obj/screen/rig_booting/booting_R = new
+
+ if(!seal_target)
+ booting_L.icon_state = "boot_left"
+ booting_R.icon_state = "boot_load"
+ animate(booting_L, alpha=230, time=30, easing=SINE_EASING)
+ animate(booting_R, alpha=200, time=20, easing=SINE_EASING)
+ M.client.screen += booting_L
+ M.client.screen += booting_R
+
canremove = 0 // No removing the suit while unsealing.
sealing = 1
@@ -228,7 +239,6 @@
if(seal_delay && !do_after(M,seal_delay))
if(M) M << "You must remain still while the suit is adjusting the components."
failed_to_seal = 1
-
if(!M)
failed_to_seal = 1
else
@@ -284,6 +294,10 @@
sealing = null
if(failed_to_seal)
+ M.client.screen -= booting_L
+ M.client.screen -= booting_R
+ qdel(booting_L)
+ qdel(booting_R)
for(var/obj/item/piece in list(helmet,boots,gloves,chest))
if(!piece) continue
piece.icon_state = "[initial(icon_state)][!seal_target ? "" : "_sealed"]"
@@ -296,6 +310,12 @@
// Success!
canremove = seal_target
M << "Your entire suit [canremove ? "loosens as the components relax" : "tightens around you as the components lock into place"]."
+ M.client.screen -= booting_L
+ qdel(booting_L)
+ booting_R.icon_state = "boot_done"
+ spawn(40)
+ M.client.screen -= booting_R
+ qdel(booting_R)
if(canremove)
for(var/obj/item/rig_module/module in installed_modules)
@@ -1003,6 +1023,16 @@
/mob/living/carbon/human/get_rig()
return back
+//Boot animation screen objects
+/obj/screen/rig_booting
+ screen_loc = "1,1"
+ icon = 'icons/obj/rig_boot.dmi'
+ icon_state = ""
+ layer = SCREEN_LAYER
+ plane = PLANE_FULLSCREEN
+ mouse_opacity = 0
+ alpha = 20 //Animated up when loading
+
#undef ONLY_DEPLOY
#undef ONLY_RETRACT
#undef SEAL_DELAY
diff --git a/icons/obj/rig_boot.dmi b/icons/obj/rig_boot.dmi
new file mode 100644
index 00000000000..598ea1d2a49
Binary files /dev/null and b/icons/obj/rig_boot.dmi differ