From 5bd9b440a9a90e058e3fb07841f322c41f482be2 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 1 Nov 2021 11:27:42 -0400 Subject: [PATCH 1/7] Ashen tree! --- .../mapgen/Cavegens/LavalandGenerator.dm | 2 +- code/modules/mining/lavaland/ash_tree.dm | 68 ++++++++++++++++++ icons/obj/lavaland/ash_tree.dmi | Bin 0 -> 2637 bytes tgstation.dme | 1 + 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 code/modules/mining/lavaland/ash_tree.dm create mode 100644 icons/obj/lavaland/ash_tree.dmi diff --git a/code/datums/mapgen/Cavegens/LavalandGenerator.dm b/code/datums/mapgen/Cavegens/LavalandGenerator.dm index b895ad4414..3ce3821708 100644 --- a/code/datums/mapgen/Cavegens/LavalandGenerator.dm +++ b/code/datums/mapgen/Cavegens/LavalandGenerator.dm @@ -7,7 +7,7 @@ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random = 40, /obj/structure/spawner/lavaland = 2, \ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30, /obj/structure/spawner/lavaland/legion = 3, \ SPAWN_MEGAFAUNA = 4, /mob/living/simple_animal/hostile/asteroid/goldgrub = 10) - flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2) + flora_spawn_list = list(/obj/structure/flora/ash/leaf_shroom = 2 , /obj/structure/flora/ash/cap_shroom = 2 , /obj/structure/flora/ash/stem_shroom = 2 , /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2, /obj/structure/flora/ashtree = 1) feature_spawn_list = list(/obj/structure/geyser/random = 1) initial_closed_chance = 45 diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm new file mode 100644 index 0000000000..d9775290f1 --- /dev/null +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -0,0 +1,68 @@ +//Houses the ash tree, a lava land tree that has been burning for quite some time making a maple like sweetener. + +/obj/structure/flora/ashtree + gender = PLURAL //same as other tree + icon = 'icons/obj/lavaland/ash_tree.dmi' + icon_state = "ashtree" + var/sap_icon_state = "ashtree_maple" //Are icon when we are full of honey or other sap + var/tabbed_icon_state = "ashtree_maple" //What we look like when tapping + name = "ashed tree" + desc = "A once large tree now burnt like the lands around it." + density = TRUE + pixel_x = -16 + layer = FLY_LAYER + var/coal_amount = 5 //amout of coal in are tree, simular to logs + var/sap = FALSE //Do we have sap? + var/are_sap = /datum/reagent/consumable/honey //What reagent we have + //var/tapping_items = list(/obj/item/reagent_containers/glass) - current dosnt work commiting it out + var/harvest_sap_time = 60 //This is in seconds, and now long we wait till are tree is tapped + var/container_used + var/sap_amount + +/obj/structure/flora/ashtree/New() + ..() + if(prob(50)) + sap = TRUE + icon_state = sap_icon_state + desc = "A once large tree now burnt like the lands around it. This one seems to have a sap still inside." + sap_amount = rand(60,120) //good amout of honey + coal_amount = rand(5,15) //We give a random amout + +/obj/structure/flora/ashtree/proc/harvest_sap() + desc = "A once large tree now burnt like the lands around it." + icon_state = "ashtree" + var/obj/item/reagent_containers/RG = container_used + if(RG.is_refillable()) //Incase someone was a dumb and used a lidded container + if(!RG.reagents.holder_full()) //Make sure that its not filling something thats full + RG.reagents.add_reagent(are_sap, min(RG.volume - RG.reagents.total_volume, sap_amount)) + RG.forceMove(drop_location()) //We drop are used beaker and try to fill it with sap + +//Proc stolen from Trees +//If you hit it with a sharp force aboe 0 item it chops it down, unlike trees tho it dosnt give wood as its already charcoal +//Also dosnt have a stump +/obj/structure/flora/ashtree/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/reagent_containers)) + if(sap) + user.visible_message("[user] pokes [src] and places a container under the [W].","You set up [src] with [W].") + icon_state = tabbed_icon_state + sap = FALSE + container_used = W + W.forceMove(src) //Sadly when cutting down the tree we get deleted with it, otherwise this allows us to get sap! + addtimer(CALLBACK(src, .proc/harvest_sap), harvest_sap_time SECONDS) + else + to_chat(user, "There is no sap to collect.") + + if(coal_amount && (!(flags_1 & NODECONSTRUCT_1))) + if(W.sharpness && W.force > 0) + if(W.hitsound) + playsound(get_turf(src), W.hitsound, 100, 0, 0) + user.visible_message("[user] begins to cut down [src] with [W].","You begin to cut down [src] with [W].", "You hear the sound of brittle sawing.") + if(do_after(user, 500/W.force, target = src)) //2.5 seconds with 20 force, 4 seconds with a hatchet, 10 seconds with a shard. + user.visible_message("[user] fells [src] with the [W].","You fell [src] with the [W].", "You hear the sound of a crumbling tree.") + playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) + for(var/i=1 to coal_amount) + new /obj/item/stack/sheet/mineral/coal(get_turf(src)) + qdel(src) + + else + return ..() \ No newline at end of file diff --git a/icons/obj/lavaland/ash_tree.dmi b/icons/obj/lavaland/ash_tree.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7a8addafe59a5e1d7ec10a77543cdb358463b289 GIT binary patch literal 2637 zcmaJ@XH=8R7X3o#ol6r*h|;7A4-kaVq>54%1jPW-QHmgtNJ#=J)k_dXI#L7#l-^qc zic-ahfHdj7g_3|l;Dxu|{rA@UF>}`1Yv!zd_RN_*v6kk>9IR(q0RZ4IxoU8O7O}K} zW@e<#>xDvjv=9|yZ5L?Z_Q)l`>tUdmpDzHQGLw5NSvwTDqqo)f`7mP$zU%e&;)Y5! z<(8ZQ>DZw}2$jm|8~J2h?N6IX(F#Q1K>gdz2faA>nUB5}o5}eSik~Cyeh)Ka{ET|* z?#ya*LH@SQMpx%u;WJDDDKZ&o>iCC@SL1I&E=e2Cl^1`hLDBXL$JnU%|F~`@3ji#U zCI(lmQJEWAe%`!G&@VciiH|wwasGA?5QqLy4!aq@?1KW6{Hz~dH};(s1RAB!|3&m{ zwz{L6lgH2hw;6&se6{8;3E359kl}i#gV{|-(|BtyVLh*CJ8Aifr;OgmsfnqdADNOi zo`o-Z!#Kr|=*{lku(whaEhJ^P^>A|Q@n+-FA2J6!dyZ9#43Ym^j3E1m$O;1A2L+WF7&`h{G{wJ!bSH&Wq_up(6C@p8lqS@u3in|p(5C@ z0YnXixP5Q`NbEdcG&Lmr>(DoZD^Wol?5dQOtZV*mp-UZ17-yLML*rtBrG4!MCV z{SM|z(bXv3L@WH9kke?7qJsB&&BlD{?552vIg$AXCvJmVo`Cl#^}$qeJ5QU&h|^XX zl)>4Uw>UD0w_Ezx&(>aSGu(Z2B!xdFg+qvZIFZitgU3r*AWBa~Mdjh~ggU^v50hP< z8D?DkJ~TO3oh>vR)HfjQAPKHoMv|3CMw;1zj(xdp4pW|@opnpqD^>nP(a754$e^AA zQ=!Bw_fn;xdXqpgin)H~EjuM+SUcX=O12sipPFF=LHO2>aY|$B@w&NBm|WKf+M;h$|DMK|5CJuh4w)v8{u)8>F`4 z;#dnE;n|sm>)xH?_p+tay6q)AaJH%PRM=&JlT4-_tCCh~);j0>X#(sbYHM)8V3AHY zoHkj!_g0h^TvE|~ZvX`$Xjpsw{oU!qn<%Hm<)I7}`X_Q;zT)I5p1M{_-9}J(&}a#N zErVC(L{OEd>xj;rHdfu#Yor-!X23E`y! z_nKAtAk6eVug6)c&7a#H9w4tp8M)~R9F;K;BC_|xdS9z9JS($nRGPZCO1nLs)lL8f zra8T){?kY0((v}KtpnvTnRObSXoxR;sb`$G{pYZ9Ero5YetUa6$wx!f$EagTOiO*` zR;^5w92E*^Ejk#!NC%JZJg>suxXg}Q#tRQI(hb?(ZWs%5V@nFhgJ z$D3#>83e4hjnxo|GQPi(biiGCc+tU*=BCgd^9M>u%bnnuwS320dDr+md#Q+KcDZPT zjQ9Qfq9OxzX-fT|Fz%MOj$KdA2iNPTUE4VrE2uu6ep0^|x;RP*)aZYDa-KNE9VK~%3{wLtO<$$N;ryogeMILs^IO8^_GE`o}RyfCjrcAwo8MK8X8g!s>#MR z=zE~VZr7caa+J|~R+J&0#Qu=lcV@d%{KAR!b zzl<{UTM;Z}IHpJv(_|7RXELDUr%alG9`6`ZcJSY+&pdz!+yFzl4S}8R<+W2Xh0}H_ zX7~RvZdbmYK5HXDq}2%x!+-jc^d9{-dv);=02$pKysg9MZCHaIa0P65J~*NPUCOm{ zP^fhP1o*Uy)B?ur#p1V+2+U+hlH-pgX!#nlfXh-`gZ*yRt5MeXz7AmCk9QL!`Zqo{ z=KXvzca+jMpc&9|k~B$i(33n$aHH|_1w73B+>^G10`}E#XQ`;7ls^ z%9Z)XObT^^RWPFpTQBXLAwB)AWj-`&;yR==Cv-)XKSXjLFLL0&8N`+dN`EgKwF=hU z+qiJmm}z@NetvJ-P(X#gAxPOoMk|QpK(l_;YMN1z{nNQn$(nj2f%vb?Rcmjoc%8(w z*`LolWSsP8Su)(s^}GON!cQbhN8~<{+!|h*^Smn-O zAlqdqgB*wvCR7s!310}vem>NqHyyUAsqy(Q(-TG%E9%XJ`DwKS4x8Yv_ftfm;=E}c zw7Tl-fk*}G0lgxIyPn~Id6{XJP&={n=Ly+C^Wa=P+SY@?{%e#onxzHoeeupQ=k1w) zm5Z#OFbVCkr3sX21Pkd~7u~uFpuCvgC42?q=3+xZXZ@M+P`UJ=wc*&ZNXtOR|K&0o z0G~01Jmbv;fnqKHm6=n%!@d5G#HQnusrH|F?_$G^xX)ZuI)KCtr3W7-b>kOAP- zW@s;d+pd1fXx-!ZN}8!i9IGt~g>S45MfyY^D+gM@wEl+w-!$$&=pn0X@z-5wv({gW~_{u_KB3X!R^z_{I9;gSqC7-OGQcqnknB_W8e zSKS2@OpybOacIJz&Z^W;UzHa!6&736Cx0m0O1UlJE$GWXBwQ;kY@z?KuL*CN{fF00 z;u76|9JTd?Xb@*9^{J~<0nh@~B%LnU?yHU{8UGTmhXP{iXbEOOImU;dL^T0j8ffre z@HA_OGGQnEJgxH@dEvPkAP{psj_KgATUpMhFX5!r6}H9j)B}5y*c5q^*BWS}e=yKF zm7Y4#4BiE$mgj`Gcs^yqdL9N2@%*A+ex)EV0|ICwi=PVp4^{v5cJAJY;?(daUh*(k z)aBS0^%gLYIT#~DEt3t-$b!GgV)CrDh;9j|qMf*Lce;8L^24!Wn01}evL|p4WX#(y|X;KWD==BB3YZH0cIwI zBx36QrY08-(WL`aR Date: Mon, 1 Nov 2021 11:40:01 -0400 Subject: [PATCH 2/7] New line linnet thing --- code/modules/mining/lavaland/ash_tree.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm index d9775290f1..383283e882 100644 --- a/code/modules/mining/lavaland/ash_tree.dm +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -65,4 +65,5 @@ qdel(src) else - return ..() \ No newline at end of file + return ..() + From e10397777c453e117e780fd3df8cb3aff1470d4f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 2 Nov 2021 06:06:23 -0400 Subject: [PATCH 3/7] Update ash_tree.dm --- code/modules/mining/lavaland/ash_tree.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm index 383283e882..9e1267f0c0 100644 --- a/code/modules/mining/lavaland/ash_tree.dm +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -28,6 +28,11 @@ sap_amount = rand(60,120) //good amout of honey coal_amount = rand(5,15) //We give a random amout +//So we dont lose are bowls, stolen form closet code +/obj/structure/flora/ashtree/Destroy() + dump_contents(override = FALSE) + return ..() + /obj/structure/flora/ashtree/proc/harvest_sap() desc = "A once large tree now burnt like the lands around it." icon_state = "ashtree" @@ -47,7 +52,7 @@ icon_state = tabbed_icon_state sap = FALSE container_used = W - W.forceMove(src) //Sadly when cutting down the tree we get deleted with it, otherwise this allows us to get sap! + W.forceMove(src) //So we dont lose are bowl when cutting it down + needed for the harvest sap proc addtimer(CALLBACK(src, .proc/harvest_sap), harvest_sap_time SECONDS) else to_chat(user, "There is no sap to collect.") From 7816417c32dcad733791b2e437bf5d4477850514 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 2 Nov 2021 06:31:15 -0400 Subject: [PATCH 4/7] tree fix and balance honey --- code/modules/mining/lavaland/ash_tree.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm index 9e1267f0c0..7c7a677102 100644 --- a/code/modules/mining/lavaland/ash_tree.dm +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -25,7 +25,7 @@ sap = TRUE icon_state = sap_icon_state desc = "A once large tree now burnt like the lands around it. This one seems to have a sap still inside." - sap_amount = rand(60,120) //good amout of honey + sap_amount = rand(20,60) //good amout of honey coal_amount = rand(5,15) //We give a random amout //So we dont lose are bowls, stolen form closet code @@ -33,6 +33,11 @@ dump_contents(override = FALSE) return ..() +/obj/structure/flora/ashtree/proc/dump_contents(override = TRUE) //Override is for not revealing the locker electronics when you open the locker, for example + var/atom/L = drop_location() + for(var/atom/movable/AM in src) + AM.forceMove(L) + /obj/structure/flora/ashtree/proc/harvest_sap() desc = "A once large tree now burnt like the lands around it." icon_state = "ashtree" From 2a4968489d85a5e7cbc6e668f805f81468d12e9f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 2 Nov 2021 09:31:54 -0400 Subject: [PATCH 5/7] 10-30 --- code/modules/mining/lavaland/ash_tree.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm index 7c7a677102..65d8264561 100644 --- a/code/modules/mining/lavaland/ash_tree.dm +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -25,7 +25,7 @@ sap = TRUE icon_state = sap_icon_state desc = "A once large tree now burnt like the lands around it. This one seems to have a sap still inside." - sap_amount = rand(20,60) //good amout of honey + sap_amount = rand(10,30) //good amout of honey coal_amount = rand(5,15) //We give a random amout //So we dont lose are bowls, stolen form closet code From c7fb7dd90f51a2616b85bc9ddd2d0b50c6d3a135 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 3 Nov 2021 14:16:36 -0400 Subject: [PATCH 6/7] lower honey + metadata --- code/modules/mining/lavaland/ash_tree.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm index 65d8264561..2ae5bffe7b 100644 --- a/code/modules/mining/lavaland/ash_tree.dm +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -25,8 +25,9 @@ sap = TRUE icon_state = sap_icon_state desc = "A once large tree now burnt like the lands around it. This one seems to have a sap still inside." - sap_amount = rand(10,30) //good amout of honey + sap_amount = rand(5,15) //good amout of honey coal_amount = rand(5,15) //We give a random amout + SSblackbox.record_feedback("tally", "Honey Tree", 1, "Trees Spawned") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //So we dont lose are bowls, stolen form closet code /obj/structure/flora/ashtree/Destroy() @@ -46,6 +47,7 @@ if(!RG.reagents.holder_full()) //Make sure that its not filling something thats full RG.reagents.add_reagent(are_sap, min(RG.volume - RG.reagents.total_volume, sap_amount)) RG.forceMove(drop_location()) //We drop are used beaker and try to fill it with sap + SSblackbox.record_feedback("tally", "Honey Tree", 1, "Harvested Honey") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //Proc stolen from Trees //If you hit it with a sharp force aboe 0 item it chops it down, unlike trees tho it dosnt give wood as its already charcoal @@ -73,6 +75,7 @@ for(var/i=1 to coal_amount) new /obj/item/stack/sheet/mineral/coal(get_turf(src)) qdel(src) + SSblackbox.record_feedback("tally", "Honey Tree", 1, "Cutted Tree") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! else return ..() From 41b36436310aa0d8e8429bc372b050ca96abe228 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 9 Nov 2021 23:41:57 -0500 Subject: [PATCH 7/7] tested and all working --- code/modules/mining/lavaland/ash_tree.dm | 80 ++++++++++++++---------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/code/modules/mining/lavaland/ash_tree.dm b/code/modules/mining/lavaland/ash_tree.dm index 2ae5bffe7b..5dca7a8e2f 100644 --- a/code/modules/mining/lavaland/ash_tree.dm +++ b/code/modules/mining/lavaland/ash_tree.dm @@ -1,40 +1,49 @@ //Houses the ash tree, a lava land tree that has been burning for quite some time making a maple like sweetener. /obj/structure/flora/ashtree - gender = PLURAL //same as other tree - icon = 'icons/obj/lavaland/ash_tree.dmi' - icon_state = "ashtree" - var/sap_icon_state = "ashtree_maple" //Are icon when we are full of honey or other sap - var/tabbed_icon_state = "ashtree_maple" //What we look like when tapping name = "ashed tree" desc = "A once large tree now burnt like the lands around it." + layer = FLY_LAYER + gender = PLURAL //same as other tree density = TRUE pixel_x = -16 - layer = FLY_LAYER - var/coal_amount = 5 //amout of coal in are tree, simular to logs - var/sap = FALSE //Do we have sap? - var/are_sap = /datum/reagent/consumable/honey //What reagent we have - //var/tapping_items = list(/obj/item/reagent_containers/glass) - current dosnt work commiting it out - var/harvest_sap_time = 60 //This is in seconds, and now long we wait till are tree is tapped + icon = 'icons/obj/lavaland/ash_tree.dmi' + icon_state = "ashtree" + //Are icon when we are full of honey or other sap + var/sap_icon_state = "ashtree_maple" + //What we look like when tapping + var/tabbed_icon_state = "ashtree_maple" + //amout of coal in are tree, simular to logs + var/coal_amount = 5 + //Do we have sap? + var/sap = FALSE + //What reagent we have + var/sap_type = /datum/reagent/consumable/honey + //This is in seconds, and now long we wait till are tree is tapped + var/harvest_sap_time = 60 var/container_used var/sap_amount -/obj/structure/flora/ashtree/New() +/obj/structure/flora/ashtree/Initialize(mapload) ..() if(prob(50)) sap = TRUE icon_state = sap_icon_state desc = "A once large tree now burnt like the lands around it. This one seems to have a sap still inside." - sap_amount = rand(5,15) //good amout of honey - coal_amount = rand(5,15) //We give a random amout - SSblackbox.record_feedback("tally", "Honey Tree", 1, "Trees Spawned") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + //If we have sap, we can generate a bit of it + sap_amount = rand(5,15) + //Random coal or wood amount, so its not bog standered. + coal_amount = rand(5,15) + //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.record_feedback("tally", "Honey Tree", 1, "Trees Spawned") //So we dont lose are bowls, stolen form closet code /obj/structure/flora/ashtree/Destroy() dump_contents(override = FALSE) return ..() -/obj/structure/flora/ashtree/proc/dump_contents(override = TRUE) //Override is for not revealing the locker electronics when you open the locker, for example +//Override is for not revealing the locker electronics when you open the locker, for example +/obj/structure/flora/ashtree/proc/dump_contents(override = TRUE) var/atom/L = drop_location() for(var/atom/movable/AM in src) AM.forceMove(L) @@ -43,10 +52,13 @@ desc = "A once large tree now burnt like the lands around it." icon_state = "ashtree" var/obj/item/reagent_containers/RG = container_used - if(RG.is_refillable()) //Incase someone was a dumb and used a lidded container - if(!RG.reagents.holder_full()) //Make sure that its not filling something thats full - RG.reagents.add_reagent(are_sap, min(RG.volume - RG.reagents.total_volume, sap_amount)) - RG.forceMove(drop_location()) //We drop are used beaker and try to fill it with sap + //Incase someone was a dumb and used a lidded container + if(RG.is_refillable()) + //Make sure that its not filling something thats full + if(!RG.reagents.holder_full()) + RG.reagents.add_reagent(sap_type, min(RG.volume - RG.reagents.total_volume, sap_amount)) + //We drop are used beaker and try to fill it with sap + RG.forceMove(drop_location()) SSblackbox.record_feedback("tally", "Honey Tree", 1, "Harvested Honey") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! //Proc stolen from Trees @@ -59,24 +71,26 @@ icon_state = tabbed_icon_state sap = FALSE container_used = W - W.forceMove(src) //So we dont lose are bowl when cutting it down + needed for the harvest sap proc + //So we dont lose are bowl when cutting it down + needed for the harvest sap proc + user.transferItemToLoc(W, src) addtimer(CALLBACK(src, .proc/harvest_sap), harvest_sap_time SECONDS) else to_chat(user, "There is no sap to collect.") if(coal_amount && (!(flags_1 & NODECONSTRUCT_1))) - if(W.sharpness && W.force > 0) - if(W.hitsound) - playsound(get_turf(src), W.hitsound, 100, 0, 0) - user.visible_message("[user] begins to cut down [src] with [W].","You begin to cut down [src] with [W].", "You hear the sound of brittle sawing.") - if(do_after(user, 500/W.force, target = src)) //2.5 seconds with 20 force, 4 seconds with a hatchet, 10 seconds with a shard. - user.visible_message("[user] fells [src] with the [W].","You fell [src] with the [W].", "You hear the sound of a crumbling tree.") - playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) - for(var/i=1 to coal_amount) - new /obj/item/stack/sheet/mineral/coal(get_turf(src)) - qdel(src) - SSblackbox.record_feedback("tally", "Honey Tree", 1, "Cutted Tree") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(!W.sharpness || !W.force) + return + if(W.hitsound) + playsound(get_turf(src), W.hitsound, 100, 0, 0) + user.visible_message("[user] begins to cut down [src] with [W].","You begin to cut down [src] with [W].", "You hear the sound of brittle sawing.") + //2.5 seconds with 20 force, 4 seconds with a hatchet, 10 seconds with a shard. + if(do_after(user, 500/W.force, target = src)) + user.visible_message("[user] fells [src] with the [W].","You fell [src] with the [W].", "You hear the sound of a crumbling tree.") + playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0) + for(var/i=1 to coal_amount) + new /obj/item/stack/sheet/mineral/coal(get_turf(src)) + qdel(src)//If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SSblackbox.record_feedback("tally", "Honey Tree", 1, "Cutted Tree") - else return ..()