From 1a8b41f71815634cab2eee072008c23bb6cac2ed Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Sun, 5 May 2024 09:32:44 +1000 Subject: [PATCH] Adds new buildmode - DROP (#15961) --- code/modules/admin/verbs/buildmode.dm | 36 +++++++++++++++++++++++++- icons/misc/buildmode.dmi | Bin 2198 -> 2228 bytes 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 283c6a5031..ef5987e4be 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -7,8 +7,9 @@ #define BUILDMODE_CONTENTS 7 #define BUILDMODE_LIGHTS 8 #define BUILDMODE_AI 9 +#define BUILDMODE_DROP 10 -#define LAST_BUILDMODE 9 +#define LAST_BUILDMODE 10 /proc/togglebuildmode(mob/M as mob in player_list) set name = "Toggle Build Mode" @@ -171,6 +172,16 @@ Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be interrupted by enemies)
\ Right Mouse Button + alt on obj/turfs = Command selected mobs to attack obj/turf
\ ***********************************************************") + + if(BUILDMODE_DROP) + to_chat(usr, "***********************************************************
\ + Right Mouse Button on buildmode button = Set object type
\ + Middle Mouse Button on buildmode button= On/Off object type saying
\ + Middle Mouse Button on turf/obj = Capture object type
\ + Left Mouse Button on turf/obj = Drop objects safely
\ + Right Mouse Button = Drop objects unsafely
\ + Mouse Button + ctrl = Copy object type

\ + ***********************************************************
") return 1 /obj/effect/bmode/buildquit @@ -315,6 +326,8 @@ var/input = input(usr, "New light color.","Light Maker",3) as null|color if(input) new_light_color = input + if(BUILDMODE_DROP) + objholder = get_path_from_partial_text() return 1 /proc/build_click(var/mob/user, buildmode, params, var/obj/object) @@ -637,6 +650,27 @@ flick_overlay(orderimage, list(user.client), 8, TRUE) return + + if(BUILDMODE_DROP) + if(ispath(holder.buildmode.objholder,/turf)) + to_chat(user, "Cannot use turfs with this mode.") + return + if(pa.Find("left") && !pa.Find("ctrl")) + if(ispath(holder.buildmode.objholder)) + var/obj/effect/falling_effect/FE = new /obj/effect/falling_effect(get_turf(object), holder.buildmode.objholder) + FE.crushing = FALSE + else if(pa.Find("right")) + if(ispath(holder.buildmode.objholder)) + var/obj/effect/falling_effect/FE = new /obj/effect/falling_effect(get_turf(object), holder.buildmode.objholder) + FE.crushing = TRUE + else if(pa.Find("ctrl")) + holder.buildmode.objholder = object.type + to_chat(user, "[object]([object.type]) copied to buildmode.") + if(pa.Find("middle")) + holder.buildmode.objholder = text2path("[object.type]") + if(holder.buildmode.objsay) + to_chat(usr, "[object.type]") + /proc/build_drag(var/client/user, buildmode, var/atom/fromatom, var/atom/toatom, var/atom/fromloc, var/atom/toloc, var/fromcontrol, var/tocontrol, params) var/obj/effect/bmode/buildholder/holder = null for(var/obj/effect/bmode/buildholder/H) diff --git a/icons/misc/buildmode.dmi b/icons/misc/buildmode.dmi index 82214656ebe9396affdb3818ae155253afc5e47d..d04de3a5207ba8548d058b28fb3c24ffc89396d3 100644 GIT binary patch delta 2180 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