Merge pull request #10144 from AzuleUtama/RCDFixes

[WIP] Fixes RCD giving no user feedback when out of ammo
This commit is contained in:
tigercat2000
2018-11-08 23:56:40 -08:00
committed by GitHub
+45 -15
View File
@@ -255,6 +255,8 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
var/turf/AT = get_turf(A)
AT.ChangeTurf(/turf/simulated/floor/plating)
return TRUE
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to construct this floor!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
if(isfloorturf(A))
@@ -268,27 +270,39 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
var/turf/AT = A
AT.ChangeTurf(/turf/simulated/wall)
return TRUE
return FALSE
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to construct this wall!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
to_chat(user, "<span class='warning'>ERROR! Location unsuitable for wall construction!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
/obj/item/rcd/proc/mode_airlock(atom/A, mob/user)
if(isfloorturf(A) && checkResource(10, user))
to_chat(user, "Building Airlock...")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 50 * toolspeed, target = A))
if(locate(/obj/machinery/door/airlock) in A.contents)
if(isfloorturf(A))
if(checkResource(10, user))
to_chat(user, "Building Airlock...")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, 50 * toolspeed, target = A))
if(locate(/obj/machinery/door/airlock) in A.contents)
return FALSE
if(!useResource(10, user))
return FALSE
playsound(loc, usesound, 50, 1)
var/obj/machinery/door/airlock/T = new door_type(A)
T.name = door_name
T.autoclose = TRUE
if(one_access)
T.req_one_access = door_accesses.Copy()
else
T.req_access = door_accesses.Copy()
return FALSE
if(!useResource(10, user))
return FALSE
playsound(loc, usesound, 50, 1)
var/obj/machinery/door/airlock/T = new door_type(A)
T.name = door_name
T.autoclose = TRUE
if(one_access)
T.req_one_access = door_accesses.Copy()
else
T.req_access = door_accesses.Copy()
return FALSE
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to construct this airlock!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
to_chat(user, "<span class='warning'>ERROR! Location unsuitable for airlock construction!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
/obj/item/rcd/proc/mode_decon(atom/A, mob/user)
@@ -305,6 +319,9 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
var/turf/AT = A
AT.ChangeTurf(/turf/simulated/floor/plating)
return TRUE
return FALSE
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to deconstruct this wall!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
if(isfloorturf(A))
@@ -318,6 +335,9 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
var/turf/AT = A
AT.ChangeTurf(/turf/space)
return TRUE
return FALSE
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to deconstruct this floor!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
if(istype(A, /obj/machinery/door/airlock))
@@ -330,12 +350,17 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
playsound(loc, usesound, 50, 1)
qdel(A)
return TRUE
return FALSE
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to deconstruct this airlock!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return FALSE
if(istype(A, /obj/structure/window)) // You mean the grille of course, do you?
A = locate(/obj/structure/grille) in A.loc
if(istype(A, /obj/structure/grille))
if(!checkResource(2, user))
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to deconstruct this window!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return 0
to_chat(user, "Deconstructing window...")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
@@ -367,6 +392,8 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
if(locate(/obj/structure/grille) in A)
return 0 // We already have window
if(!checkResource(2, user))
to_chat(user, "<span class='warning'>ERROR! Not enough matter in unit to construct this window!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return 0
to_chat(user, "Constructing window...")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
@@ -392,6 +419,9 @@ GLOBAL_LIST_INIT(rcd_door_types, list(
var/turf/AT = A
AT.ChangeTurf(/turf/simulated/floor/plating) // Platings go under windows.
return 1
to_chat(user, "<span class='warning'>ERROR! Location unsuitable for window construction!</span>")
playsound(loc, 'sound/machines/click.ogg', 50, 1)
return 0
/obj/item/rcd/afterattack(atom/A, mob/user, proximity)
if(!proximity)