From 0f387451f721e759f2914a1dd9f2a43e9473e4e7 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sun, 1 Oct 2017 08:03:43 +0300 Subject: [PATCH 1/2] You can now examine an airlock to find out how to construct/deconstruct it (#30605) * Tweaks rwall construction examine-messages. * Tweaks window construction examine-messages. * Added airlock construction examine messages. * Typo fix. * Shortened the airlock electronics circuit message. * Fixed examine text styles. * Fixes. * Fixed wall-examine showing on rwalls. * Made wall and rwall decon hints into a proc. Probably overrode the examine() wrong. * I missed a > in span. Reinforced falsewall now deconstructs with wirecutters and looks like a real rwall. Changed to a more classy istype-check. * New reinforced fakewall examine- and attackby-subtypes to get rid of if-istype-reinforced-checks. * Removed unnecessary rwall-examine. * Sound full path. --- .../machinery/doors/airlock_electronics.dm | 4 ++++ code/game/machinery/doors/door.dm | 4 ++++ code/game/objects/structures/door_assembly.dm | 17 +++++++++++++++++ code/game/objects/structures/false_walls.dm | 19 ++++++++++++++++--- code/game/turfs/simulated/wall/reinf_walls.dm | 3 +-- code/game/turfs/simulated/walls.dm | 9 ++++++++- 6 files changed, 50 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index f27e3da2dc..f52ffd42fe 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -5,6 +5,10 @@ var/list/accesses = list() var/one_access = 0 +/obj/item/electronics/airlock/examine(mob/user) + ..() + to_chat(user, "Has a neat selection menu for modifying airlock access levels.") + /obj/item/electronics/airlock/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) SStgui.try_update_ui(user, src, ui_key, ui, force_open) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 65a92c0b1a..25bbe1bc1d 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -33,6 +33,10 @@ var/damage_deflection = 10 var/real_explosion_block //ignore this, just use explosion_block +/obj/machinery/door/examine(mob/user) + ..() + to_chat(user, "Its maintenance panel is screwed in place.") + /obj/machinery/door/New() ..() if(density) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 1183618d5a..9889d07b90 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -363,6 +363,23 @@ anchored = TRUE state = 1 +/obj/structure/door_assembly/examine(mob/user) + ..() + switch(state) + if(0) + if(anchored) + to_chat(user, "The anchoring bolts are wrenched in place, but the maintenance panel lacks wiring.") + else + to_chat(user, "The assembly is welded together, but the anchoring bolts are unwrenched.") + if(1) + to_chat(user, "The maintenance panel is wired, but the circuit slot is empty.") + if(2) + to_chat(user, "The circuit is connected loosely to its slot, but the maintenance panel is unscrewed and open.") + if(!mineral || !material) + to_chat(user, "There is a small paper placard on the assembly. There are empty slots for glass windows or mineral covers.") + else + to_chat(user, "There is a small paper placard on the assembly.") + /obj/structure/door_assembly/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/pen)) var/t = stripped_input(user, "Enter the name for the door.", src.name, src.created_name,MAX_NAME_LEN) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 5d6e6f3d77..b81aa7d4d8 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -123,9 +123,12 @@ else return ..() -/obj/structure/falsewall/proc/dismantle(mob/user, disassembled = TRUE) - user.visible_message("[user] dismantles the false wall.", "You dismantle the false wall.") - playsound(src, 'sound/items/welder.ogg', 100, 1) +/obj/structure/falsewall/proc/dismantle(mob/user, disassembled=TRUE, obj/item/tool = null) + user.visible_message("[user] dismantles the false wall.", "You dismantle the false wall.") + if(tool) + playsound(src, tool.usesound, 100, 1) + else + playsound(src, 'sound/items/welder.ogg', 100, 1) deconstruct(disassembled) /obj/structure/falsewall/deconstruct(disassembled = TRUE) @@ -141,6 +144,7 @@ return null /obj/structure/falsewall/examine_status(mob/user) //So you can't detect falsewalls by examine. + to_chat(user, "The outer plating is welded firmly in place.") return null /* @@ -155,6 +159,15 @@ walltype = /turf/closed/wall/r_wall mineral = /obj/item/stack/sheet/plasteel +/obj/structure/falsewall/reinforced/examine_status(mob/user) + to_chat(user, "The outer grille is fully intact.") + return null + +/obj/structure/falsewall/reinforced/attackby(obj/item/tool, mob/user) + ..() + if(istype(tool, /obj/item/wirecutters)) + dismantle(user, TRUE, tool) + /* * Uranium Falsewalls */ diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index 5ebe1d632a..5c95d108b4 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -13,8 +13,7 @@ girder_type = /obj/structure/girder/reinforced explosion_block = 2 -/turf/closed/wall/r_wall/examine(mob/user) - ..() +/turf/closed/wall/r_wall/deconstruction_hints(mob/user) switch(d_state) if(INTACT) to_chat(user, "The outer grille is fully intact.") diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 9171c7f54c..baee3b31c1 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -25,6 +25,13 @@ /turf/closed/wall/clockwork) smooth = SMOOTH_TRUE +/turf/closed/wall/examine(mob/user) + ..() + deconstruction_hints(user) + +/turf/closed/wall/proc/deconstruction_hints(mob/user) + to_chat(user, "The outer plating is welded firmly in place.") + /turf/closed/wall/attack_tk() return @@ -287,4 +294,4 @@ to_chat(user, "You deconstruct the wall.") ChangeTurf(/turf/open/floor/plating) return TRUE - return FALSE \ No newline at end of file + return FALSE