From b662b470a98fbf388cee0a59ef3cdf782878d1fe Mon Sep 17 00:00:00 2001 From: AnturK Date: Sat, 28 Nov 2015 18:14:52 +0100 Subject: [PATCH] Enables ghost to go through ladders Adds Cold snow turf Adds Infinite Candles --- code/game/objects/items/candle.dm | 19 +++++++--- code/game/objects/structures/ladders.dm | 35 ++++++++++++------- code/game/turfs/simulated/floor/misc_floor.dm | 3 ++ .../awaymissions/mission_code/Academy.dm | 20 ++++++++++- 4 files changed, 60 insertions(+), 17 deletions(-) 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