From e26a84c59ecd23acd092b9530447dc11a1736fd5 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Tue, 25 May 2021 22:28:20 -0400 Subject: [PATCH] Allow better mapped-in marker beacons --- .../objects/items/stacks/marker_beacons.dm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/stacks/marker_beacons.dm b/code/game/objects/items/stacks/marker_beacons.dm index 5c7ed3aa040..f5de239b9a9 100644 --- a/code/game/objects/items/stacks/marker_beacons.dm +++ b/code/game/objects/items/stacks/marker_beacons.dm @@ -86,23 +86,31 @@ var/list/marker_beacon_colors = list( light_power = 0.8 var/remove_speed = 15 var/picked_color + var/perma = FALSE + var/mapped_in_color /obj/structure/marker_beacon/New(newloc, set_color) . = ..() - picked_color = set_color + if(set_color) + picked_color = set_color + else if(mapped_in_color) + picked_color = mapped_in_color update_icon() /obj/structure/marker_beacon/examine(mob/user) . = ..() - . += "Alt-click to select a color. Current color is [picked_color]." + if(!perma) + . += "Alt-click to select a color. Current color is [picked_color]." /obj/structure/marker_beacon/update_icon() - while(!picked_color || !marker_beacon_colors[picked_color]) + if(!picked_color || !marker_beacon_colors[picked_color]) picked_color = pick(marker_beacon_colors) icon_state = "[initial(icon_state)][lowertext(picked_color)]-on" set_light(light_range, light_power, marker_beacon_colors[picked_color]) /obj/structure/marker_beacon/attack_hand(mob/living/user) + if(perma) + return to_chat(user, "You start picking [src] up...") if(do_after(user, remove_speed, target = src)) var/obj/item/stack/marker_beacon/M = new(loc) @@ -114,6 +122,8 @@ var/list/marker_beacon_colors = list( qdel(src) //otherwise delete us /obj/structure/marker_beacon/attackby(obj/item/I, mob/user, params) + if(perma) + return if(istype(I, /obj/item/stack/marker_beacon)) var/obj/item/stack/marker_beacon/M = I to_chat(user, "You start picking [src] up...") @@ -126,6 +136,8 @@ var/list/marker_beacon_colors = list( /obj/structure/marker_beacon/AltClick(mob/living/user) ..() + if(perma) + return if(user.incapacitated() || !istype(user)) to_chat(user, "You can't do that right now!") return