From 3bc641f1c49ba5b3ebfcc15e9dd2e3ddead93144 Mon Sep 17 00:00:00 2001 From: forest2001 Date: Sun, 3 Mar 2024 17:09:12 +0000 Subject: [PATCH] Chemical Overhaul Part 3 --- code/modules/borer/borer.dm | 13 +++++++++++++ code/modules/borer/borer_procs.dm | 4 +++- icons/mob/hud/actions_borer.dmi | Bin 3118 -> 3087 bytes 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/modules/borer/borer.dm b/code/modules/borer/borer.dm index 4f8100d62228..b62a42f3b522 100644 --- a/code/modules/borer/borer.dm +++ b/code/modules/borer/borer.dm @@ -154,6 +154,7 @@ GLOBAL_LIST_EMPTY(living_borers) /datum/action/innate/borer/leave_body, /datum/action/innate/borer/scan_chems, /datum/action/innate/borer/make_chems, + /datum/action/innate/borer/learn_chems, ) var/list/actions_xenohost = list( /datum/action/innate/borer/helpme, @@ -526,6 +527,18 @@ GLOBAL_LIST_EMPTY(living_borers) return borerscan(B, B.host) +/datum/action/innate/borer/learn_chems + name = "Learn Chemicals" + action_icon_state = "borer_human_learn" + +/datum/action/innate/borer/learn_chems/action_activate() + if(!isborer(owner)) return FALSE + var/mob/living/carbon/cortical_borer/B = owner + if(B.hibernating) + to_chat(B, SPAN_WARNING("You cannot do that while hibernating!")) + return + B.learn_chemicals() + /datum/action/innate/borer/make_larvae name = "Reproduce" action_icon_state = "borer_reproduce" diff --git a/code/modules/borer/borer_procs.dm b/code/modules/borer/borer_procs.dm index bb420f7df538..10e85b729d7c 100644 --- a/code/modules/borer/borer_procs.dm +++ b/code/modules/borer/borer_procs.dm @@ -15,7 +15,7 @@ else if(isxeno(host)) options += list("Assuming Control","Hibernation","Reproducing") else - options += list("Assuming Control","Hibernation","Secreting Chemicals","Reproducing", "Host Death") + options += list("Assuming Control","Hibernation","Secreting Chemicals","Learning Chemicals","Reproducing", "Host Death") var/choice = tgui_input_list(target, "What would you like help with?", "Help", options, 20 SECONDS) @@ -47,6 +47,8 @@ help_message = "Hibernation is how you purify contaminants from your body, allowing you to use your enzymes more freely.\n\nYou can only hibernate whilst inside a host, and it renders you unable to act other than to speak to your host.\n\nYou can freely enter or leave hibernation by clicking the Hibernate button." if("Secreting Chemicals") help_message = "Whilst inside a humanoid host you can secrete chemicals to facilitate your relationship.\nThese can vary from helpful medications to harmful control measures.\n\nSecreting chemicals costs enzymes and if a chemical is impure will cause you to gain contaminant.\nIf you are at, or will go over, your contaminant capacity you will be unable to secrete chemicals.\nPure chemicals are chemicals native to borers such as Cortical Enzyme." + if("Learning Chemicals") + help_message = "Whilst inside a humanoid host you can learn new chemicals to synthesise, costing [BORER_REPLICATE_COST] Enzymes.\n\nThis requires your host to have a chemical in their blood you do not already know, and for that chemical to be in a state of Overdose.\n\nLearning the chemical has a chance to fail, consuming enzymes but producing no results. This is determined by the number of properties the chemical has.\nSuccessful replication of the chemical will permanently allow you to reproduce it.\nSuccessful or not, attempting to replicate a chemical will consume 90% of the amount in your host's bloodstream." if("Host Death") help_message = "Upon the death of your host you will be forced to release direct control (if you are currently in control), but otherwise will be largely unaffected. If your host becomes permanently unreviavable however, you will be ejected from their corpse." if(!help_message) diff --git a/icons/mob/hud/actions_borer.dmi b/icons/mob/hud/actions_borer.dmi index aab12b0b5b6aea52cf24f0f855d80e9fe5dba48f..cfc38cf4d084b6f0d6f41002676be8348c99e3c4 100644 GIT binary patch delta 2947 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 tMs6L2$)sC>qo*rsGb-h%T171AoQr>!yle+ zp0^)=kSeP=)q+}@>lFwkNWgAmJiyKy@isviq?3mODU;n@TjhoZ9b1 z`xF2G3GhioK~#90?VO8Z+BytC8Oxw?7g%n80$pJ=jFzs1K)e6{xhvT?Pub3sHeIy! zK^4b3v1B_EWHcJ&-Q|l$deOh;sOtbU?f=V&M8!W|37}#B%HtBnn3Au_k&X0?`!90> zi;!TR3h55{b}F2Hmu&RrM4p4jkz z|J_DF7%vf&0I4}GcLHvFOprD31}{H;$pOge8D4(;k^`UwQ1y?ey#bL38h|h43BZ4B zfzj;7F8K+eGL-yKIPW?V|^+X6_5#)abR zp8@zjpU=U>i+Mk|IA!&1xe(F5Gyqul-F02G5X}1z<;UD9sc$`q)zhfb$I(8=K_@}` z@cPc@u2WLq`ZTIu$kZ-`2L70f3k=4Ad9G7d-}*w9K34(2RseuOU>X{T-VT?4*D0-U zeJh~_P`Qxn%+WpzqZN#F^CO_qUvo331DJ6G!C9;yc!>)DO8rN;A3zTg27+)OM+-~p zTL5T$ONj=~VQu0;3Qoc;bV}-5xTQ3n;OjR^k|V#mj+@qiqs-@J^^N=g1ZkBzs`jLL zVyo||#X$xcBezYpm9LuDe{ij#n3eiS|qba0j9@(4JV@%v{QT3Sa?O zaN+v30Yv*^YEvE{jF$*X7n;~geae19?_>WB0Bq4-1%QVC1d#}u7+@-Yy-x&b3cy*w z1#}=xd<}r6J|WsOX4wP)8vWC{e7jQ^$dj73dIZo)5`c604i`_1RHga=@6#6Td5*pS z5ZfOU5C+cNNs`^A0TeO71J_$%{|o#b2rAVFM0HKH$KQb<3n1;kzmExu2HKMeIH5Ds z0MIcY{K`iF*In=zo?jtyUUfozefT-5_fq6ZF>eG1fl~-NlMSJ zzaIk#f(q$%Ci<5Ef}kn@oMg6u5txtwruqQRus8`iIFE?Mu1b9X`)6@`mY+n*xe#MB zhtI=B08@Ry_rQKwgt!5)7U4Wp$%Pp7o@$TtkX<8)0RWSlMF3NOeZU9%SJ+m_Vg&?w z7b5IW0KooCdmvyrfKt=w3}=BEV|IQ74E2Gr=dV`_?!j=}VzFAom{gfYnVoA7V^Vn` zgV>p2dmI3p0MOJ2Ja3IH9d`}?@Ta@>lp{baWQ-Nsv%&~ihOGqS)93^N?BWRM>jU0u zCHi0EfBbE=QoB%pibVnt?I{5LW=0RL-j z0Dt8rF;KETkZsQx-Rk=C-t~#b(*ML(-&2c&4D!*X>mchqh`XNVI-f?nUT8Y650qKz zDH$h6YV~c_2ZCU`-R3uIWdIDDL9M=pH=85?n12rn9Vn$G0OR?~0t6!e9@GW+y|b)G z5Ea1F-m;#5L23f1>k~16$iHtJ06hKyc~k>DqyD+}2q@|k@_?<#zt;r#jk0?I5d?XF zCzL(cKR0rrVtpb85c&5Yu(p~Gh_nYcaJT!t+wJg;ku<=5|Fqxlxn2vPecPuHBDKgT zpRLHhLktAlO8NWPh5o$UOs6+u2q+hl`e!WwQ6IQ}h@w6L2LvJpc>W!K2Z9Qzzl(u8 z1OQP1?DtZy1JJznSyi7HiOGK(i1amo5o{|YU*$CUs2>3c;SwW2oZnQR81d`BjR6Ef zh4i-wVgtaF9>A1d*VQNZ0YMPw--Cb%G84dWK8dOUp7_SLd5yW7|;YU2WSw)%KF4;9Bgy>cNmlE(@h5UP<90AorhGEQi5`XB048!JylM4>I}ppj!Suwcpom zr+FCE-%hLR6C-{PkV#($mGbx3x}j0kCq{hb%I4pLD*5~C-BQx^2{Qj41cmdcJ22D_ zwE7l4zo3^sq*V+Z)KPt$^Y=fsILIKMU3woxolj$3%O@x_H_p#@qW@O5{d+%O2=!rq zc#QCGrzniVQ^oe>x3gy{iVjSAH9!=FNB+l?bvhkS9RZwYQqE)tCjCJTa0I5LMPgt1mz@$g<57xoY8-P9zzH=N~V*w$?fNJ05BkAYa#XqElxeiSFL@o$ffG`YC zKp?#5gmF-8-|YE9=kxL+Xd?k&(5J`_@MawLHKsE#{8)8G6Xq*i~Y&dZ7M%s2n>9Xq5#n9@$&dzm% zg>w0_!iWHnkLLjdtLF2Cz(XGX{srsc8(iXofv9H;^ze<+W8fK7QmjwX5{z8EH{maLH{qp)(8NFdh0XBWUP;&s7KjZwqPXS0D8gnNK^ZJI* z7fKtrF#u3{3}To@4+!9sBarw%26R+^E1?3|7y$Ho`4KZ<$bFVFHZbIKP-I2?XUm(p zAlBne0hrF^ z7*zl;-crKu5)4ZAYD>OrPL4F`69W!}0Zng7%K!+QV&N~+00zA&zfY>am2LkC(kgXS zA4qziS{!7MK?WJ5sdSzH?;fDhX3DG|0R9~S)ANPMTROA;S^%c!3n^}@&HC#Am>$cZ zOlz3+R{=0R7(<;{GV8B@0bqJGi6*sY)?WeOVt?{