diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index 52f4cf1221..f9148b388b 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -19,10 +19,12 @@ var/list/wood_icons = list("wood","wood-broken")
name = "floor"
icon = 'icons/turf/floors.dmi'
icon_state = "floor"
+
var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default
var/icon_plating = "plating"
thermal_conductivity = 0.040
heat_capacity = 10000
+ var/lava = 0
var/broken = 0
var/burnt = 0
var/obj/item/stack/tile/floor_tile = new/obj/item/stack/tile/plasteel
@@ -70,6 +72,8 @@ var/list/wood_icons = list("wood","wood-broken")
return
turf/simulated/floor/proc/update_icon()
+ if(lava)
+ return
if(is_plasteel_floor())
if(!broken && !burnt)
icon_state = icon_regular_floor
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index eea1d2893d..87b0e6446b 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -1,5 +1,6 @@
var/global/BSACooldown = 0
+var/global/floorIsLava = 0
////////////////////////////////
@@ -2038,7 +2039,59 @@ var/global/BSACooldown = 0
var/obj/machinery/status_display/A = M
A.friendc = 1
message_admins("[key_name_admin(usr)] turned all AIs into best friends.", 1)
+ if("floorlava")
+ if(floorIsLava)
+ usr << "The floor is lava already."
+ return
+ feedback_inc("admin_secrets_fun_used",1)
+ feedback_add_details("admin_secrets_fun_used","LF")
+ //Options
+ var/length = input(usr, "How long will the lava last? (in seconds)", "Length", 180) as num
+ length = min(abs(length), 1200)
+
+ var/damage = input(usr, "How deadly will the lava be?", "Damage", 2) as num
+ damage = min(abs(damage), 100)
+
+ var/sure = alert(usr, "Are you sure you want to do this?", "Confirmation", "YES!", "Nah")
+ if(sure == "Nah")
+ return
+ floorIsLava = 1
+
+ message_admins("[key_name_admin(usr)] made the floor LAVA! It'll last [length] seconds and it will deal [damage] damage to everyone.", 1)
+
+ for(var/turf/simulated/floor/F in world)
+ if(F.z == 1)
+ F.name = "lava"
+ F.desc = "The floor is LAVA!"
+ F.overlays += "lava"
+ F.lava = 1
+
+ spawn(0)
+ for(var/i = i, i < length, i++) // 180 = 3 minutes
+ for(var/mob/living/L in living_mob_list)
+ if(istype(L.loc, /turf/simulated/floor)) // Are they on LAVA?!
+ var/turf/simulated/floor/F = L.loc
+ var/safe = 0
+ for(var/obj/structure/O in F.contents)
+ if(O.level > F.level && !istype(O, /obj/structure/window)) // Something to stand on and it isn't under the floor!
+ safe = 1
+ break
+ if(!safe)
+ L.adjustFireLoss(damage)
+
+
+ sleep(10)
+
+ for(var/turf/simulated/floor/F in world) // Reset everything.
+ if(F.z == 1)
+ F.name = initial(F.name)
+ F.desc = initial(F.desc)
+ F.overlays = null
+ F.lava = 0
+ F.update_icon()
+ floorIsLava = 0
+ return
if("virus")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","V")
@@ -2938,7 +2991,8 @@ var/global/BSACooldown = 0
Move Mining Shuttle
Break all lights
Fix all lights
-Best Friend AI
"}
+Best Friend AI
+The floor is lava! (DANGEROUS)
"}
//Station Shockwave
if(lvl >= 6)
diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi
index 144479ed1a..494401b975 100644
Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ