From 4c303d2477bd508bd308260e9b64cbbabf29cb9f Mon Sep 17 00:00:00 2001 From: "Mr.Heavenly" Date: Tue, 30 Dec 2025 20:31:41 -0500 Subject: [PATCH 1/4] Adds crab apples --- code/modules/hydroponics/seeds.dm | 20 +++++++++ .../hostile/retaliate/crabapple.dm | 37 +++++++++++++++++ .../reagent_containers/food/snacks/grown.dm | 38 ++++++++++++++++++ icons/mob/animal.dmi | Bin 648139 -> 648896 bytes icons/obj/hydroponics/crabapple.dmi | Bin 0 -> 1335 bytes vgstation13.dme | 1 + 6 files changed, 96 insertions(+) create mode 100644 code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm create mode 100644 icons/obj/hydroponics/crabapple.dmi diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index a4d2427b8ff6..318b61d078e0 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -347,6 +347,11 @@ seed_type = "goldapple" vending_cat = "fruits" +/obj/item/seeds/crabappleseed + name = "packet of crab apple seeds" + seed_type = "crabapple" + vending_cat = "fruits" + /obj/item/seeds/ambrosiavulgarisseed name = "packet of ambrosia vulgaris seeds" seed_type = "ambrosia" @@ -805,6 +810,7 @@ name = "poisonapple" mutants = null products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned) + mutants = list("crabapple") chems = list(CYANIDE = list(1,5)) /datum/seed/apple/gold @@ -820,6 +826,20 @@ production = 10 yield = 3 +/datum/seed/apple/crab + name = "crabapple" + seed_name = "crab apple" + display_name = "crab apple tree" + plant_dmi = 'icons/obj/hydroponics/crabapple.dmi' + products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple) + mutants = list("apple", "poisonapple",) + chems = list(NUTRIMENT = list(1,10)) + + maturation = 4 + production = 4 + yield = 2 + pest_tolerance = 75 + //Ambrosia/varieties. /datum/seed/ambrosia name = "ambrosia" diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm new file mode 100644 index 000000000000..d2d3018c15d7 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm @@ -0,0 +1,37 @@ +/mob/living/simple_animal/hostile/retaliate/crabapple + name = "crab apple" + desc = "No one likes crabs..." + icon_state = "crab_apple" + icon_living = "crab_apple" + faction = "tomato" + speak_chance = 0 + turns_per_move = 3 + maxHealth = 5 + health = 5 + response_help = "prods the" + response_disarm = "pushes aside the" + response_harm = "snaps the" + attacktext = "pinches" + attack_sound = 'sound/weapons/bite.ogg' + harm_intent_damage = 1 + melee_damage_lower = 1 + melee_damage_upper = 1 + environment_smash_flags = 0 + var/datum/seed/seed + +/mob/living/simple_animal/hostile/retaliate/crabapple/reagent_act(id, method, volume) + .=..() + + switch(id) + if(PLANTBGONE) + death(FALSE) + +/mob/living/simple_animal/hostile/retaliate/crabapple/death(var/gibbed = FALSE) + ..(TRUE) + new /obj/item/weapon/reagent_containers/food/snacks/meat/crabmeat(src.loc) + var/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/T + T = new(src.loc) + T.alive = FALSE + if(seed) + T.seed = seed + qdel(src) diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index 18250040c558..af9e061e92bc 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -562,6 +562,44 @@ var/list/strange_seed_product_blacklist = subtypesof(/obj/item/weapon/reagent_co filling_color = "#F5CB42" plantname = "goldapple" +/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple + name = "crab apple" + desc = "An even smaller piece of Eden." + potency = 15 + filling_color = "#DFE88B" + plantname = "crabapple" + var/alive = TRUE + +/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/after_consume(mob/living/carbon/eater) + if(!alive) + return ..() + to_chat(eater, "The [src] skitters away from your grip!") + create_crab(eater, TRUE) + +/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/attack_self(mob/user as mob) + if(!alive) + return ..() + to_chat(user, "You plant the crab apple.") + create_crab(user) + + +/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/proc/create_crab(mob/user as mob, aggro = FALSE) + if(istype(user.loc, /turf/space)) + return FALSE + alive = FALSE + var/mob/living/simple_animal/hostile/retaliate/crabapple/T = new(user.loc) + T.harm_intent_damage = clamp(potency/10, 1, 10) + T.melee_damage_lower = clamp(potency/20, 1, 5) + T.melee_damage_upper = clamp(potency/10, 1, 15) + T.health = clamp(potency/3, 5, 25) + T.maxHealth = clamp(potency/3, 5, 25) + T.seed = seed + if(aggro) + T.hostile = TRUE + T.health -= potency/6 + qdel(src) + + /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon name = "watermelon" desc = "It's full of watery goodness." diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 5cdd1e07b30771470ec65e9b92ba9c8a7f3e7615..5f63b4583bdcf03561cfc03a84abeef9ab047038 100644 GIT binary patch delta 10460 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 tU;ldf6w7gRTGo002ovPDHLkV1nFLTv7l4 literal 0 HcmV?d00001 diff --git a/vgstation13.dme b/vgstation13.dme index 9a46134252e3..d0915519b551 100644 --- a/vgstation13.dme +++ b/vgstation13.dme @@ -2299,6 +2299,7 @@ #include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\cluwne.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\cockatrice.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\crabapple.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\creatinecricket.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\faguette.dm" From 930aa5bdcbba95c662d178417f6634a0a09cd2da Mon Sep 17 00:00:00 2001 From: "Mr.Heavenly" Date: Wed, 31 Dec 2025 18:45:27 -0500 Subject: [PATCH 2/4] Adds tannic acid to fruit, changes to HP interactions, --- code/modules/hydroponics/seeds.dm | 10 ++++----- .../hostile/retaliate/crabapple.dm | 21 +++++++++++++----- .../reagent_containers/food/snacks/grown.dm | 14 ++++++------ icons/mob/animal.dmi | Bin 648896 -> 648816 bytes 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 318b61d078e0..bbbbd4fbcc57 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -794,7 +794,7 @@ display_name = "apple tree" plant_dmi = 'icons/obj/hydroponics/apple.dmi' products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/apple) - mutants = list("poisonapple","goldapple") + mutants = list("poisonapple","goldapple", "crabapple") harvest_repeat = 1 chems = list(NUTRIMENT = list(1,10)) @@ -810,7 +810,7 @@ name = "poisonapple" mutants = null products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned) - mutants = list("crabapple") + mutants = null chems = list(CYANIDE = list(1,5)) /datum/seed/apple/gold @@ -831,9 +831,9 @@ seed_name = "crab apple" display_name = "crab apple tree" plant_dmi = 'icons/obj/hydroponics/crabapple.dmi' - products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple) - mutants = list("apple", "poisonapple",) - chems = list(NUTRIMENT = list(1,10)) + products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple) + mutants = null + chems = list(NUTRIMENT = list(1,10), TANNIC_ACID = list(1,30)) maturation = 4 production = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm index d2d3018c15d7..c1f05b6f9207 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm @@ -17,7 +17,7 @@ melee_damage_lower = 1 melee_damage_upper = 1 environment_smash_flags = 0 - var/datum/seed/seed + var/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/my_fruit /mob/living/simple_animal/hostile/retaliate/crabapple/reagent_act(id, method, volume) .=..() @@ -29,9 +29,18 @@ /mob/living/simple_animal/hostile/retaliate/crabapple/death(var/gibbed = FALSE) ..(TRUE) new /obj/item/weapon/reagent_containers/food/snacks/meat/crabmeat(src.loc) - var/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/T - T = new(src.loc) - T.alive = FALSE - if(seed) - T.seed = seed + if(!my_fruit) + my_fruit = new(loc) + my_fruit.forceMove(loc) + my_fruit.alive = FALSE qdel(src) + +/mob/living/simple_animal/hostile/retaliate/crabapple/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.is_wirecutter(user)) + if(stat == DEAD) + return ..() + to_chat(user, "This kills the crab.") + health -= 25 + death() + else + return ..() diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index af9e061e92bc..15009bb2d323 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -562,28 +562,27 @@ var/list/strange_seed_product_blacklist = subtypesof(/obj/item/weapon/reagent_co filling_color = "#F5CB42" plantname = "goldapple" -/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple +/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple name = "crab apple" desc = "An even smaller piece of Eden." potency = 15 - filling_color = "#DFE88B" plantname = "crabapple" var/alive = TRUE -/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/after_consume(mob/living/carbon/eater) +/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/after_consume(mob/living/carbon/eater) if(!alive) return ..() to_chat(eater, "The [src] skitters away from your grip!") create_crab(eater, TRUE) -/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/attack_self(mob/user as mob) +/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/attack_self(mob/user as mob) if(!alive) return ..() to_chat(user, "You plant the crab apple.") create_crab(user) -/obj/item/weapon/reagent_containers/food/snacks/grown/crabapple/proc/create_crab(mob/user as mob, aggro = FALSE) +/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/proc/create_crab(mob/user as mob, aggro = FALSE) if(istype(user.loc, /turf/space)) return FALSE alive = FALSE @@ -593,10 +592,11 @@ var/list/strange_seed_product_blacklist = subtypesof(/obj/item/weapon/reagent_co T.melee_damage_upper = clamp(potency/10, 1, 15) T.health = clamp(potency/3, 5, 25) T.maxHealth = clamp(potency/3, 5, 25) - T.seed = seed + T.my_fruit = new type(T) + T.my_fruit.seed = seed//doesn't work if(aggro) T.hostile = TRUE - T.health -= potency/6 + T.health -= clamp(potency/6, 2, 12) qdel(src) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 5f63b4583bdcf03561cfc03a84abeef9ab047038..3e93f2f74649620014e6d2b62f7b8867c852436b 100644 GIT binary patch delta 7218 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 MtKC&CQ8x4ce_Xk(@Bjb+ delta 7299 zcmY*-bzD?k7w#ECxT#mE5%%)?@p&;U z3I<;69)t7I9o<){m#tpYQH0S^KyZ$Sb9|f=;G7WWS8z^*bK)vG3X;lta3(wZ>y`on z)Xk9W3XZcEAV{F*fY6HZi$huw;u>bcZ({G&FxFo!dG&NWzh}nOJpZkd$q_VQ*b@HC z@T- zliKtwc9WfvF|5R{V_^jx%oa=SbD6VO0}Koe`Q7U(?pQ!6e^A{kNBUTEnfG*dB3kB^ z`!}u+XDEcNt+`AYJq+K>m5)nFA*q{=sja=)vV|hgjAlW>mX_*HIrv=QRQVcVPvr>tfxL&|RN z)zN505x$o3ga9?qqo2;cV*T-JBH}BrwBjrySM|VbG0<+@5G&NSlT`pVF z_d;8DeL6gg=2^kBlXEN9lLGtG)0iz44-eRN{j1tK8Ih0gG9PDE;vM#(2ghe3UZm_( zJigq`LPni<4A^-8q(3-3n%As4BlG2)3E{|PwF)wfDETC-rlvW!QFAl8N`Uto59z3b zJ@ZWnD&QhkUH3WFg6$%;BW260Uc3X5^W)N5+Rf=rS+pz|wX`d|;=bNqmEKqFe(!3t zI>FWc29oW7J;vbBkcIVqE1RjY-D8W@eaLhy5$XG=SJAhn0{}$-)_t~u6Y@!_z~ITf zhOqTKbXH**#h{}T;Ir{mdZDA0S5BM|cCkq~i_ZkaiUvKTx4*j3Qon6CbfF{yo-bRe zPaJn0FZh9kzQ)@u62UJ5+7=g14H{yF+IRr2Ti3sD)}U?;HPi&`fBS_$#Co~a(*F!n z$$3H?BB#zo#~2l;`J6XLkicmGsqW#yIU|2!sdv#I=`$&$yVZinwZh%%T!FG_xdO4) zBP6zdk{b(qC4R9wloy50fK&D)LDkzz>^d{VRj0wx<>TGO77pa8g#85*edG5_=lT#?2VuIrr8Zd^!NkXG45Vmonocsd;X-?quMfBY9h|IaOCcGC3 zfEuBqTeH6_bvdi^Y)w%&YgSBGy&v=bKJk2(?b0DQ{Y^$=aW1vxQb0lpym?+jssuJU zPqHJGkSOj=coUjR6^Y`*Sj8Ix-ntC+fCiirkr^gN8KzodTFApRAN2&r1c@$YYLxAw zzTyd0ak4*-OSq-d+0E#o^`h$5Bxw#}!ZLemwpltcf zHQkIgNntY_d=q#5fY$;G_!QQB^;{Zt8;@F2Ucw0MJLE;A&q$a7v`IONilNgSsuE3Z z`JE7IdJzh13b;@qvF?=Jf<)$dwtdcQONIL+MVRfmt2<2Fj15epbV_n#D!}#$J+Fm* z54XFOC79kvk?CR2nK&ApC#zabJk9zsJM#?~xL_-PSl5w`{-+Wu`t#PfqtWS-`)Xr6 z)FU)+-v1(7SzT8*)@5urvGrP*^5Ro7gK)=*%|tE=#(vDJBT9T?ASN#|xkGZy*?;zt zn2b!_`+>ws%c<95Z-}h~^8GbA%8AJ*H zxY%|r>+WjOshFJaH5c}Z&k7(*D#{OCdYnXWabceuE3Z2Oo4IBdUGR!o$6qBf>n%xv zcYY(*E~RG)6vJa0hXPLU57apR5yzj3b$3Tk;%jJaK@wBtf4r}BO9~?74jv3ux;L&7 zZkC4OnDynX0|1a=$rjuOiNA#QFi}$-=H2nUBDR+& z6AVFIoOnuEOnkffW2X&S(zAGWW|4wKDNnxdz@A~xAd28+{wCJg&@du|jPWb#l(rG* z@0*g8lq^05G(wrTR5b4G5e$xxP#D+;cX;yg^Q#woik!MM=HnEVD~U2 zG5PuQ8(E({sf?*o4M>`y1Q5q0NjX11FFW}#?2Z9nuf8Ln+L*OW>W_er%yzvcYw)u} zkyqq|_0HI3pJj?Sh}sQ_!OF305F_!5tI^_!@BLZdp1?czk;K$y%p~5X6>j);knkPjBNi*U2IIopilgJ=eTCei-M0`pyIcQ(u zkj29FvdrVN48%^vx*QX>YC z0*{uKVguNjOhWm8I2Z$?UF@2-Q(5R&Dqu;S68^N^lT6d27fBF8>)vC?s8eR;`mf47 zwB%9+>`mYDOzkv^^S5liiD2^N&Z<4@+Yi(S=Q&ms=6p4yFXJKPN}w?YJpdvr4~quS zREnS?I5Ki{R#9M-e@910-OX(?6VPZ-oN}SEst!|-z#Rc0uLdo(waL4CdKfTvGk8p{ zx4+kxk9guG4-Y>aV_mDaw1W9{cXiQ-ii)b#2#)f&<LMJc>rg}7}sH(nBNKO{=E<$n8e2lD3n|4m1+s!44;j%eVR^~}6 zAk{ES(EmtAG3%KDju9WeDdPD>%vwO_1}%Pr(`qKOjqq|#4%(N!5t0^`sp3$4baOwm z_qkwIfqsz1_xm}fg0`1k^=tN*dswBbC3d!62g5YcZ#dU!@q#tM;3hVA4NW*vOeIL7 z6~1p}@`vFPLVKh2H9cvU^W&po+2{rWAi1TFIF{+S!}rhm{pUQFk{Yr5o%0CC$2{o3 z;UBd-8xAmk@|fB87!Lp^YVKmIUSJ}mTv^mWC3=1WJwzf}mrL90Tx6*iI|LxoN94ue zwv-=0sEm!KgYZIL>$=56K4ayDr5BY=hTkH|vnRX^&Bu~Kz_ImY-JOzLuItz70T)Pg zuM*SKHrK6Arq(NlLWZt#p>1 zdt#+R{Cg&YZwVea4a~6Ci+986O=Dp)?dMX zv6~aDYw@_&ZYox77>Q^L(0MyLK|DiUUJ|_Z_V|<{>BJ*0uHTy`M@RFK)O6xzs2{rX zM<`dR3m$R*rvq|xs8Y*|ivk2UvWvfy)-HW@X8wcs!*n^)P1j4a6Hp+ORo49eCJcFL zSK{1n3oy|)2R!fJT%p)(n~9u;!sBmQ9{A|XZeKkJIk1_WLD}?|zX+F5w{cpgM9RdB zni^I=ptonpsxMpLS zbWsGXCz}dGpAcN0fGr^HJ3*=zw#OPKCbHg6eGuR~rb`|`F!_*c(+Fs5rN0c6hEsdo z1%j1#r{o8pmeAC(`p%;+(1gfSZq=)pZ*4>CO)|sBi&=Em!~23fwZFzTedj%8zd7_= zEwHR-*&8SxzX4R2>)z2Ju5>R9?sGKQ@U1iXE=yJ#i3f0iS!t zk4-XVg!nAz{~JA^iY)p$fGl>~$L?d-Esz73YyKDhKZk}w`W#htbSNGe80Z@sE?c}ckJ~PMynHF0;pTAPoydABY4I*P!eB6O1Tx)c?42fOxJ}FhbO8Dicltv_&ySfVj)t@N7lL(9n=NPF(*C?Yl9SZ%dUt z$hBQ^HU(kYE8|z9GFor+HjzoCC}rsiUlXh0?61z@lMWy`qP16RY9?jc8#i6ek)Q=-uGrBFprPM)6 z*S+&tc}smGh9Y{4^gpi_UjKX^|3P+;KOp|dXv64Kz$y_Ea=QL<>`~yVlD|LVbFk3& zDh&Ifi3bS7Q3Pm2cTjQ{z{o$=_j{DRXZL~X3#98!ohWr6yLZpBd2J+rL}`*5%;tbWg9s?Y@Nv=M^7g{4ZzHk;!cAHLVkF-2^cHy?ykW%f%UX0+ji4mzX)ko)tHs zx7{x<&RrPpI68jXlB=kw`26+jo~fvW`SS8|XIIzDvXxwtM&%VQRVKFz%@;3fxHr39 zd%U)1>ft}UtY)k%En_C#MVpUewZfkGoOa}{)yT=o)w=naxqr>cAs}OfK133>B+Uzt z*XqP`_vYG)05eD|cxP&TC{I`9@#Du?H8tZq=bqsjEF#w7MK+PmAV~AC5w^?`CPjq* zH6bo?>%XP&aPoE_^grcJYux37)QCRf6@&Ve`G0GQ?uHVH5sE~rnMX2s34=yU3Jkt}%TheSr|IL_kCY z>ucQTONE^`zIyz{q^4$^6F1*5s1Pu|dnSXcbvh*bcW!8CEcWTSgJ(UindtN3Py>kM zYH{bs4WBtuX*l|JLRLt*lPLZJ&JJr1G5D5s#~H-K2j{i4rrSLTsq<>WzydbylfE-y=NWsG&Y_ z883Sy=2>L87DT3yw!52L{rdw^je`_(x6LxVzw00*8%l0n-tz{$`-~wkE2;>ZM|tv)s~i?|OSmym!5 zB>PWBb5Cw&nPRmp%J->ybcp>5M-&$pjJtJlEo!Jfc5?T4i zeFH`Z#O;Skt^yUv!&_*xL`)rXnIcWVl+vRa*rcCxi zmeUTnuJnICz*w#_@;AT_m%-YdNx(4ia-~C_7vvzuGC#v z5~r(Axqp2TxmB;Yqg2|LFuC>u`9T;y1#@fXPK!c7{CuZs6zSmm^f#bW2AmFc))x4> z$oN@~#<|ZRMOmDj>%^b1vPA{H*SdvG#Q0(*bk99Ue+CRXM0;=SRXdnpr!Bieq_^kP zlHz}8`kQG#Gc!9o7a#B}8kN=?B10lx0{4z=$|pt@{36IDYWL{5DM4WO-F_M0Ya)Ot z@dsh<(BYZ#CcK0k95A9Zcg>kh!ea*SzE`JLdSdVKSMoYJ6%89ZzcR{o&G?makQj8- zJVf|SkU4%{?!fJyh_@SeSDaV%il5{DlnyVt6{h<+^vqh|y?>|Wu36re!vXHPn%J|1I&Xc!Mp{e&lvh2U+aH?! zoOsDD%D&>VsW#pOqh^p6n^yvV(Qhd2F+3<0Y!pEf&@n-YX;etCLqWQgPpUvuz)~6o)@_1gL zdNPfbs*yRk{FhZ@x;#onM>lVDu4U+)^UKk6*ST?d&*OKOQpRKV17hNK`)3z<(>}f) z{y{jbX|?^}P#-5F(o^O(Mo+@bG; zsI4SJW}1}A3ZKc^8subfbLPQ>?_Tx4BO#OkQO=x?vgAZGsl2uP19^J;3PKCOua2>b zAq2cB1F|j6LYYO}zToY!1$Tb4|Ge}6P`*>{;i>2AJ2OHuSF@*R`|KYo{o5pw!?Kt_NwC8F{DY{EMs91faAOobcnSOot)7@Ov${{YE> zd!pBKBahg0=e0Doh)Nd=Ro$x_9M50#`23Oz(9{3eFo2|<^XA9IKmfO6Z)0DXuQ9`) zF>MM2g9(Nb55%_GoU69`1F;2r$lsAwl!i6edvXt3(}cV{EI(;2M;x7BxZrqsRBs~V zvdJnQ1X?92+5L}_+RRXH1=K$rgsv0HVvGl`Nczu5O^LK6?GPeNN&b8<3nz;;XatK9 zP^5Cj6MIEs>wMT>|V8zluoR4rmL2 z+Z(no)3$c%HJi<4E%yX^p%_i!U+?1)Zyjsa1wJpmM#w}gWS`sVDO2ZkdLMV+{dbW` zDT^7zOud!p+^Bg)ES4VFC7_z3@-SW0)*60bdCv<;i9B1~k-JMU5$bIA=FS}lmEXfE z9h8BlB-VZyyK2l2q3r1f!HG5MN2^Uof0Ka~??oTNXn722M9;J4j3SOLc-e8;D9Pk# z2kCzZHpk?Pn_gqZ|4o4;CfK?D!3X`nC~GIg{sWkYM`G*}U))xn&4TDREr7GT>i5-( IZd Date: Wed, 7 Jan 2026 00:26:33 -0500 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: west3436 <66280799+west3436@users.noreply.github.com> --- code/modules/reagents/reagent_containers/food/snacks/grown.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index 15009bb2d323..a77245c122a8 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -584,7 +584,7 @@ var/list/strange_seed_product_blacklist = subtypesof(/obj/item/weapon/reagent_co /obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/proc/create_crab(mob/user as mob, aggro = FALSE) if(istype(user.loc, /turf/space)) - return FALSE + return alive = FALSE var/mob/living/simple_animal/hostile/retaliate/crabapple/T = new(user.loc) T.harm_intent_damage = clamp(potency/10, 1, 10) From 3b9df155a984b918f9adf9a8def2800f18eae32a Mon Sep 17 00:00:00 2001 From: "Mr.Heavenly" Date: Wed, 7 Jan 2026 01:20:13 -0500 Subject: [PATCH 4/4] loot generation improvements minor amendment more fixes --- code/modules/hydroponics/seeds.dm | 5 ++--- .../hostile/retaliate/crabapple.dm | 17 +++++++++-------- .../reagent_containers/food/snacks/grown.dm | 3 +-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index bbbbd4fbcc57..4924e704ee92 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -810,7 +810,6 @@ name = "poisonapple" mutants = null products = list(/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned) - mutants = null chems = list(CYANIDE = list(1,5)) /datum/seed/apple/gold @@ -835,8 +834,8 @@ mutants = null chems = list(NUTRIMENT = list(1,10), TANNIC_ACID = list(1,30)) - maturation = 4 - production = 4 + maturation = 5 + production = 5 yield = 2 pest_tolerance = 75 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm index c1f05b6f9207..05613586f84b 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/crabapple.dm @@ -11,13 +11,13 @@ response_help = "prods the" response_disarm = "pushes aside the" response_harm = "snaps the" - attacktext = "pinches" - attack_sound = 'sound/weapons/bite.ogg' + attacktext = "snips" + attack_sound = 'sound/weapons/toolhit.ogg' harm_intent_damage = 1 melee_damage_lower = 1 melee_damage_upper = 1 environment_smash_flags = 0 - var/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/my_fruit + var/datum/seed/sneed = null /mob/living/simple_animal/hostile/retaliate/crabapple/reagent_act(id, method, volume) .=..() @@ -28,11 +28,12 @@ /mob/living/simple_animal/hostile/retaliate/crabapple/death(var/gibbed = FALSE) ..(TRUE) - new /obj/item/weapon/reagent_containers/food/snacks/meat/crabmeat(src.loc) - if(!my_fruit) - my_fruit = new(loc) - my_fruit.forceMove(loc) - my_fruit.alive = FALSE + new /obj/item/weapon/reagent_containers/food/snacks/meat/crabmeat(loc) + if(sneed) + var/product_type = pick(sneed.products) + var/obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple/apple = new product_type(loc, custom_plantname = sneed.name) + if(istype(apple, /obj/item/weapon/reagent_containers/food/snacks/grown/apple/crabapple)) + apple.alive = FALSE qdel(src) /mob/living/simple_animal/hostile/retaliate/crabapple/attackby(var/obj/item/O as obj, var/mob/user as mob) diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index a77245c122a8..bb0a3823192e 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -592,8 +592,7 @@ var/list/strange_seed_product_blacklist = subtypesof(/obj/item/weapon/reagent_co T.melee_damage_upper = clamp(potency/10, 1, 15) T.health = clamp(potency/3, 5, 25) T.maxHealth = clamp(potency/3, 5, 25) - T.my_fruit = new type(T) - T.my_fruit.seed = seed//doesn't work + T.sneed = seed if(aggro) T.hostile = TRUE T.health -= clamp(potency/6, 2, 12)