diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm
index ba55eebe335..1171c646104 100644
--- a/code/game/objects/items/candle.dm
+++ b/code/game/objects/items/candle.dm
@@ -8,10 +8,14 @@
w_class = 1
var/wax = 200
var/lit = 0
+ var/infinite = 0
+ var/start_lit = 0
heat = 1000
- proc
- light(var/flavor_text = "[usr] lights the [name].")
+/obj/item/candle/New()
+ ..()
+ if(start_lit)
+ light()
/obj/item/candle/update_icon()
var/i
@@ -51,14 +55,16 @@
light() //honk
return
-/obj/item/candle/light(var/flavor_text = "[usr] lights the [name].")
+/obj/item/candle/proc/light(var/flavor_text = "[usr] lights the [name].")
if(!src.lit)
src.lit = 1
//src.damtype = "fire"
for(var/mob/O in viewers(usr, null))
O.show_message(flavor_text, 1)
SetLuminosity(CANDLE_LUMINOSITY)
- SSobj.processing |= src
+ if(!infinite)
+ SSobj.processing |= src
+ update_icon()
/obj/item/candle/process()
@@ -99,4 +105,9 @@
/obj/item/candle/is_hot()
return lit * heat
+
+/obj/item/candle/infinite
+ infinite = 1
+ start_lit = 1
+
#undef CANDLE_LUMINOSITY
\ No newline at end of file
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index a1f3b4079de..c27f6cc9540 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -41,35 +41,43 @@
else //wtf make your ladders properly assholes
icon_state = "ladder00"
-/obj/structure/ladder/attack_hand(mob/user)
+/obj/structure/ladder/proc/use(mob/user,is_ghost=0)
if(up && down)
switch( alert("Go up or down the ladder?", "Ladder", "Up", "Down", "Cancel") )
if("Up")
- user.visible_message("[user] climbs up \the [src].", \
+ if(!is_ghost)
+ user.visible_message("[user] climbs up \the [src].", \
"You climb up \the [src].")
+ up.add_fingerprint(user)
user.loc = get_turf(up)
- up.add_fingerprint(user)
if("Down")
- user.visible_message("[user] climbs down \the [src].", \
+ if(!is_ghost)
+ user.visible_message("[user] climbs down \the [src].", \
"You climb down \the [src].")
+ down.add_fingerprint(user)
user.loc = get_turf(down)
- down.add_fingerprint(user)
if("Cancel")
return
else if(up)
- user.visible_message("[user] climbs up \the [src].", \
- "You climb up \the [src].")
+ if(!is_ghost)
+ user.visible_message("[user] climbs up \the [src].", \
+ "You climb up \the [src].")
+ up.add_fingerprint(user)
user.loc = get_turf(up)
- up.add_fingerprint(user)
else if(down)
- user.visible_message("[user] climbs down \the [src].", \
- "You climb down \the [src].")
+ if(!is_ghost)
+ user.visible_message("[user] climbs down \the [src].", \
+ "You climb down \the [src].")
+ down.add_fingerprint(user)
user.loc = get_turf(down)
- down.add_fingerprint(user)
+
+ if(!is_ghost)
+ add_fingerprint(user)
- add_fingerprint(user)
+/obj/structure/ladder/attack_hand(mob/user)
+ use(user)
/obj/structure/ladder/attack_paw(mob/user)
return attack_hand(user)
@@ -77,6 +85,9 @@
/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user, params)
return attack_hand(user)
+/obj/structure/ladder/attack_ghost(mob/dead/observer/user)
+ use(user,1)
+
/obj/structure/ladder/unbreakable/Destroy()
return QDEL_HINT_LETMELIVE
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index 067ebe88eed..30db7ef2984 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -51,6 +51,9 @@
/turf/simulated/floor/plating/snow/ex_act(severity, target)
contents_explosion(severity, target)
+/turf/simulated/floor/plating/snow/cold
+ temperature = 220 //Enough to deal cold damage on breathing. TODO : Make these points defines
+
/turf/simulated/floor/plating/snow/gravsnow
icon_state = "gravsnow"
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index 4cfa7bb36b7..90d50af1e8b 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -20,6 +20,14 @@
name = "\improper Academy Gateway"
icon_state = "away4"
+/area/awaymission/academy/academycellar
+ name = "\improper Academy Cellar"
+ icon_state = "away4"
+
+/area/awaymission/academy/academyengine
+ name = "\improper Academy Engine"
+ icon_state = "away4"
+
//Academy Items
/obj/singularity/academy
@@ -306,4 +314,14 @@
for(var/direction in alldirs)
var/turf/T = get_step(Start,direction)
if(!T.density)
- target_mob.Move(T)
\ No newline at end of file
+ target_mob.Move(T)
+
+/obj/structure/ladder/unbreakable/rune
+ name = "Teleportation Rune"
+ desc = "Could lead anywhere."
+ icon = 'icons/obj/rune.dmi'
+ icon_state = "1"
+ color = rgb(0,0,255)
+
+/obj/structure/ladder/unbreakable/rune/update_icon()
+ return
\ No newline at end of file