From 1ce593b9a209d7cbbcbf82812e78c006c4bf859d Mon Sep 17 00:00:00 2001 From: Henri215 <77684085+Henri215@users.noreply.github.com> Date: Sat, 25 Feb 2023 15:15:21 -0300 Subject: [PATCH] Ports TG push broom (#20367) * Ports TG push broom * Update code/game/objects/items/weapons/twohanded.dm Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> * Lewc review and twohanded autodoc * Steelslayer review --------- Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> --- .../objects/items/weapons/storage/belt.dm | 3 +- code/game/objects/items/weapons/twohanded.dm | 68 ++++++++++++++++++ .../crates_lockers/closets/job_closets.dm | 2 + code/game/objects/structures/janicart.dm | 20 +++++- code/modules/response_team/ert_outfits.dm | 1 + .../supply/supply_packs/pack_miscellaneous.dm | 1 + .../inhands/equipment/custodial_lefthand.dmi | Bin 560 -> 899 bytes .../inhands/equipment/custodial_righthand.dmi | Bin 558 -> 883 bytes icons/obj/janitor.dmi | Bin 16576 -> 17088 bytes 9 files changed, 92 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 9d484e9ba84..fc48b402d59 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -438,7 +438,8 @@ /obj/item/soap, /obj/item/holosign_creator/janitor, /obj/item/melee/flyswatter, - /obj/item/storage/bag/trash + /obj/item/storage/bag/trash, + /obj/item/twohanded/push_broom ) /obj/item/storage/belt/janitor/full/populate_contents() diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 0b15975a30d..d272bdd57bf 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -10,6 +10,7 @@ * Mjolnnir * Knighthammer * Pyro Claws + * Push Broom */ /*################################################################## @@ -953,3 +954,70 @@ on_cooldown = FALSE flags &= ~NODROP atom_say("Internal plasma canisters recharged. Gloves sufficiently cooled") + +/// Max number of atoms a broom can sweep at once +#define BROOM_PUSH_LIMIT 20 + +/obj/item/twohanded/push_broom + name = "push broom" + desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." + icon = 'icons/obj/janitor.dmi' + icon_state = "broom0" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + force = 8 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + force_unwielded = 8 + force_wielded = 12 + attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") + resistance_flags = FLAMMABLE + +/obj/item/twohanded/push_broom/update_icon_state() + icon_state = "broom[wielded]" + +/obj/item/twohanded/push_broom/wield(mob/user) + . = ..() + to_chat(user, "You brace [src] against the ground in a firm sweeping stance.") + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(sweep)) + +/obj/item/twohanded/push_broom/unwield(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + +/obj/item/twohanded/push_broom/afterattack(atom/A, mob/user, proximity) + . = ..() + if(!proximity) + return + sweep(user, A, FALSE) + +/obj/item/twohanded/push_broom/proc/sweep(mob/user, atom/A, moving = TRUE) + SIGNAL_HANDLER + var/turf/current_item_loc = moving ? user.loc : (isturf(A) ? A : A.loc) + if(!isturf(current_item_loc)) + return + var/turf/new_item_loc = get_step(current_item_loc, user.dir) + var/obj/machinery/disposal/target_bin = locate(/obj/machinery/disposal) in new_item_loc.contents + var/trash_amount = 1 + for(var/obj/item/garbage in current_item_loc.contents) + if(!garbage.anchored) + if(target_bin) + garbage.forceMove(target_bin) + else + garbage.Move(new_item_loc, user.dir) + trash_amount++ + if(trash_amount > BROOM_PUSH_LIMIT) + break + if(trash_amount > 1) + if(target_bin) + target_bin.update_icon() + to_chat(user, "You sweep the pile of garbage into [target_bin].") + playsound(loc, 'sound/weapons/thudswoosh.ogg', 10, TRUE, -1) + +/obj/item/twohanded/push_broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/cart) + cart.mybroom = src + cart.put_in_cart(src, user) + +#undef BROOM_PUSH_LIMIT diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 5e8c94253a8..433067a7a3f 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -85,6 +85,8 @@ new /obj/item/caution(src) new /obj/item/caution(src) new /obj/item/caution(src) + new /obj/item/twohanded/push_broom(src) + new /obj/item/twohanded/push_broom(src) new /obj/item/storage/bag/trash(src) new /obj/item/storage/bag/trash(src) new /obj/item/lightreplacer(src) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 6e8fa06adf4..a132917b4e3 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -12,8 +12,9 @@ //copypaste sorry var/maximum_volume = 150 var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite - var/obj/item/storage/bag/trash/mybag = null + var/obj/item/storage/bag/trash/mybag = null var/obj/item/mop/mymop = null + var/obj/item/twohanded/push_broom/mybroom = null var/obj/item/reagent_containers/spray/cleaner/myspray = null var/obj/item/lightreplacer/myreplacer = null var/signs = 0 @@ -28,6 +29,7 @@ GLOB.janitorial_equipment -= src QDEL_NULL(mybag) QDEL_NULL(mymop) + QDEL_NULL(mybroom) QDEL_NULL(myspray) QDEL_NULL(myreplacer) return ..() @@ -56,7 +58,12 @@ m.janicart_insert(user, src) else to_chat(user, fail_msg) - + else if(istype(I, /obj/item/twohanded/push_broom)) + if(!mybroom) + var/obj/item/twohanded/push_broom/B = I + B.janicart_insert(user, src) + else + to_chat(user, fail_msg) else if(istype(I, /obj/item/storage/bag/trash)) if(!mybag) var/obj/item/storage/bag/trash/t=I @@ -114,6 +121,8 @@ dat += "[mybag.name]
" if(mymop) dat += "[mymop.name]
" + if(mybroom) + dat += "[mybroom.name]
" if(myspray) dat += "[myspray.name]
" if(myreplacer) @@ -140,6 +149,11 @@ user.put_in_hands(mymop) to_chat(user, "You take [mymop] from [src].") mymop = null + if(href_list["broom"]) + if(mybroom) + user.put_in_hands(mybroom) + to_chat(user, "You take [mybroom] from [src].") + mybroom = null if(href_list["spray"]) if(myspray) user.put_in_hands(myspray) @@ -170,6 +184,8 @@ . += "cart_garbage" if(mymop) . += "cart_mop" + if(mybroom) + . += "cart_broom" if(myspray) . += "cart_spray" if(myreplacer) diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index 47a41cc5ee3..f57ec0374aa 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -493,6 +493,7 @@ /obj/item/grenade/chem_grenade/antiweed = 2, /obj/item/reagent_containers/spray/cleaner/advanced = 1, /obj/item/storage/bag/trash = 1, + /obj/item/twohanded/push_broom, /obj/item/storage/box/lights/mixed = 1, /obj/item/melee/flyswatter = 1) diff --git a/code/modules/supply/supply_packs/pack_miscellaneous.dm b/code/modules/supply/supply_packs/pack_miscellaneous.dm index f175b07d055..99210fc9826 100644 --- a/code/modules/supply/supply_packs/pack_miscellaneous.dm +++ b/code/modules/supply/supply_packs/pack_miscellaneous.dm @@ -143,6 +143,7 @@ /obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, + /obj/item/twohanded/push_broom, /obj/item/caution, /obj/item/caution, /obj/item/caution, diff --git a/icons/mob/inhands/equipment/custodial_lefthand.dmi b/icons/mob/inhands/equipment/custodial_lefthand.dmi index a707c315cfa67f5a4d5a40d7fd85f6e349429713..0714e446beed643f8dbec8196067dcdd6f839db2 100644 GIT binary patch delta 719 zcmdnM(#)>f8Q|y6%O%Cdz`(%k>ERLtqz?e`0uE*%nfq;WK9I_vsOn=g-`Drf#*Gu5 zoF3eNzG2;gV@EHZtE`NVk2f$d2(7tg8h`BaCGY)v^r!dEvjA#gED7=pW^j0RBMr!z zFmZNe{p1Z-JzanP+{t!C)A-0zpU8t(&$G%*Vo)|n=-Kjdy)y#?lbWZCV@SoEw>Rs< zZyAUjD=e^>n-^Tt^ka4Ii{JIVivB2%psI*U zl;+fP`hUIEe82_(3CSR_$ol(tesxCvKRPui?A7z~?-yNG?+7~O^>_ZySd)ud>!xf9 zs{j4Kzhp+n%}^$Ywg%zN5qf`)tSdWY*uPrc{^aW?KcAX{EUucpeo<$}$6rFeTY|LK zKFhDa=(45eo4S<`kZZg456s?%om$4`uMc?5ojJQSVcAKKv!|kqBv(dO2G=H+xCmdc zcROyvC=q%|DZ66svzVQaHXhyXaLKC{!MWwN_y2}7)fHUs)9qU?hrRk+cuLy*;fwlj z<|_oh6-A4STq-^km-o8Ksh)LKiL2_pRf1%-eofm;9f0vS7T>knCrFO^JcHQ`KoNyU)K{_F%xrsr5(uq)HpfujoZnc z3;nyd+@7Z{9KLgH-t&aNi_#4be?99koqx`gcbD^aZ~SY&@~-WMzk7dj*{bjOo;!D$ xb>mIj4?C}xx8+JiZk*Nl|JW-_1_leKdd5eWjHXqu&i)CC1W#8#mvv4FO#n|wTF(Fg delta 378 zcmZo>-@u~U8Q|y6%O%Cdz`(%k>ERLtq!$2j0|zsZ+`V^_CXkAqsOqEj;QsRs>kb?{ zdU3w5@12bsCptNutE{y6-ai4TfUzXVFPOpM*^M+Hr*-1m%6j4DS5I-RtJ6!^&&;sW z#A~(XhWF|~xeuN$jv*Cu-rhLP*JL2lk|-eXzDaz~!uS7YY_c<*vr&_K(*J0`Q&X1g zK4}D0&2V7;C)d2mC3g?aT(ssGzs~E{*++tAoeH(ATM(CjM`hZjki7E8?4N2s9B~x# z&RiAdy684Y7X!nDdWT&b-7>9Yq-R&m-_bqCCo{`G-F)NLdrIoTv-IAc^zA9>o^$C+ z%-hLroDdyp9+H*2qSGg9);%>ZKPi1j-rsy?&+aF@yPhBRRa>l6xqWx-B?CsV+52m=5B0B!b@ZvX%Qb&(}Z zLZ3}d+_ABM6BFRy=diB8#>LUjd3ljSLSJ8BFfcGxeA+c%#?#VEzq~L1|NnaSRhj?* z00DGTPE!Ct=GbNc005AYo_T+hu+>RL`T4m9#3?hxrA%4D)z1YSk^mzxV2rf!uR{O; z0uV_=K~#90?bzv3!Y~wuVNg`u!3D*&G;;s9D70>oB;-p{r#SE94`z~+lP0Gvn85%5 z00000?6l$DPzV;=BkYe3gkVS8;n7}v0$;F{#5Nj_@`8_!PvR5!f~9{Xzpm-@EH8L? zuG~VNU@3|1VC=dtN(2J{000000Kk8jab$XNIT3=z_Gr=}y={7RogXYEagh$`Z8y`a z{9q}GOUAkT`je1uj1Y-F`>tyCavNX9bW;(6<7}CFp;!0E008W&w`F>7AB2Cq|Jg75kB!o&TP#C+9PTY=@wri} zPx(LI;G)C5#e8kl>Qh=kZPtqq^ap#>R8^C?Rn?!-J+9iz_w<&R{0y{%90^UR lx4fLUP){U(4*&pm#yb$7GuOCdg7*Lb002ovPDHLkV1nkIL?HkG delta 376 zcmey&wvI)$Gr-TCmrII^fq{Y7)59eQNG|~51`cK*xqI&imAdg0|)PjRiQ(@WUT z%&^kLYqjNu_v%2o*PbqpAr*7p-q4%eEEdX|rF))Y$_ZacQ?Nk_W%@3bQ~ zq+T1j?Rl*FGtd4QNDBkQ47Xz`m*b)p#rD^GD#yJktABF*r1GT>@of3;e=I6hlBe&! z*P^~H=_Ln5`M+bvds-s?*tMN&{}W-Q#I^5q|5D{e P8A!dStDnm{r-UW|^hulN diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 5e70d452c91882447628a37b7fd6ae7cabf75f62..4f6c9d6d09be69d5147b927926225566fd1c0789 100644 GIT binary patch literal 17088 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 n%zk^^>32rS^HU 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