diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 029ac53730ab..018ff1284b0e 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -6,6 +6,13 @@ var/list/ladders = list()
icon = 'icons/obj/structures.dmi'
icon_state = "ladder11"
anchored = 1
+ var/custom_message_up = ""
+ var/custom_message_down = ""
+ var/custom_message_others_up = ""
+ var/custom_message_others_down = ""
+ var/custom_upanddown = ""
+ var/custom_upanddown_up = ""
+ var/custom_upanddown_down = ""
var/id = null
var/height = 0 //the 'height' of the ladder. higher numbers are considered physically higher
var/obj/structure/ladder/down = null //the ladder below this one
@@ -78,36 +85,32 @@ var/list/ladders = list()
else //wtf make your ladders properly assholes
icon_state = "ladder00"
-/obj/structure/ladder/attack_hand(mob/user as mob)
+/obj/structure/ladder/proc/go_up(mob/user)
+ user.visible_message("[user] [custom_message_others_up? custom_message_others_up : "climbs up the ladder!"]", \
+ "You [custom_message_up? custom_message_up : "climb up the ladder!"]")
+ climb(user, get_turf(up))
+ up.add_fingerprint(user)
+/obj/structure/ladder/proc/go_down(mob/user)
+ user.visible_message("[user] [custom_message_others_down? custom_message_others_down : "climbs down the ladder!"]", \
+ "You [custom_message_down? custom_message_down : "climb down the ladder!"]")
+ climb(user, get_turf(down))
+ down.add_fingerprint(user)
+
+/obj/structure/ladder/attack_hand(mob/user)
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]!", \
- "You climb up \the [src]!")
- climb(user, get_turf(up))
- up.add_fingerprint(user)
- if("Down")
- user.visible_message("[user] climbs down \the [src]!", \
- "You climb down \the [src]!")
- climb(user, get_turf(down))
- down.add_fingerprint(user)
- if("Cancel")
- return
-
+ var/choice = alert("[custom_upanddown?custom_upanddown : "Go up or down the ladder?"]", "[src]", "[custom_upanddown_up?custom_upanddown_up : "Up"]", "[custom_upanddown_down?custom_upanddown_down : "Down"]", "Cancel")
+ if(choice == "[custom_upanddown_up]" || choice == "Up")
+ go_up(user)
+ if(choice == "[custom_upanddown_down]" || choice == "Down")
+ go_down(user)
+ if(choice == "Cancel")
+ return
else if(up)
- user.visible_message("[user] climbs up \the [src]!", \
- "You climb up \the [src]!")
- climb(user, get_turf(up))
- up.add_fingerprint(user)
-
+ go_up(user)
else if(down)
- user.visible_message("[user] climbs down \the [src]!", \
- "You climb down \the [src]!")
- climb(user, get_turf(down))
- down.add_fingerprint(user)
-
+ go_down(user)
else
- to_chat(user, "This ladder is broken!")
+ to_chat(user, "This [src] is broken!")
add_fingerprint(user)