From a2f16c18eefd70f688962608d6028bea4afb03ee Mon Sep 17 00:00:00 2001 From: Mechoid Date: Sun, 31 Mar 2019 18:06:12 -0700 Subject: [PATCH 01/17] Adds the Precursotech Hybrid Tools --- .../objects/items/weapons/tools/crowbar.dm | 18 +++++++ .../items/weapons/tools/screwdriver.dm | 21 ++++++++ .../items/weapons/tools/weldingtool.dm | 13 +++++ .../items/weapons/tools/wirecutters.dm | 20 ++++++++ .../objects/items/weapons/tools/wrench.dm | 23 +++++++++ code/modules/research/designs/precursor.dm | 45 ++++++++++++++++++ icons/obj/tools.dmi | Bin 13932 -> 17896 bytes 7 files changed, 140 insertions(+) diff --git a/code/game/objects/items/weapons/tools/crowbar.dm b/code/game/objects/items/weapons/tools/crowbar.dm index 477815e62f..73b62f0741 100644 --- a/code/game/objects/items/weapons/tools/crowbar.dm +++ b/code/game/objects/items/weapons/tools/crowbar.dm @@ -51,6 +51,24 @@ toolspeed = 0.1 origin_tech = list(TECH_COMBAT = 4, TECH_ENGINEERING = 4) +/obj/item/weapon/tool/crowbar/hybrid + name = "strange crowbar" + desc = "A crowbar whose head seems to phase in and out of view." + catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_crowbar) + icon_state = "hybcrowbar" + usesound = 'sound/weapons/sonic_jackhammer.ogg' + toolspeed = 0.4 + origin_tech = list(TECH_COMBAT = 4, TECH_ENGINEERING = 3) + reach = 2 + +/obj/item/weapon/tool/crowbar/hybrid/is_crowbar() + if(prob(10)) + var/turf/T = get_turf(src) + radiation_repository.radiate(get_turf(src), 5) + T.visible_message("\The [src] shudders!") + return FALSE + return TRUE + /obj/item/weapon/tool/crowbar/cyborg name = "hydraulic crowbar" desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbars in industrial synthetics." diff --git a/code/game/objects/items/weapons/tools/screwdriver.dm b/code/game/objects/items/weapons/tools/screwdriver.dm index cb6a7f7c90..a9bdd6cee8 100644 --- a/code/game/objects/items/weapons/tools/screwdriver.dm +++ b/code/game/objects/items/weapons/tools/screwdriver.dm @@ -92,6 +92,27 @@ toolspeed = 0.1 random_color = FALSE +/obj/item/weapon/tool/screwdriver/hybrid + name = "strange screwdriver" + desc = "A strange conglomerate of a screwdriver." + icon_state = "hybscrewdriver" + item_state = "screwdriver_black" + origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3) + slowdown = 0.1 + w_class = ITEMSIZE_NORMAL + usesound = 'sound/effects/uncloak.ogg' + toolspeed = 0.4 + random_color = FALSE + reach = 2 + +/obj/item/weapon/tool/screwdriver/hybrid/is_screwdriver() + if(prob(10)) + var/turf/T = get_turf(src) + radiation_repository.radiate(get_turf(src), 5) + T.visible_message("\The [src] shudders!") + return FALSE + return TRUE + /obj/item/weapon/tool/screwdriver/cyborg name = "powered screwdriver" desc = "An electrical screwdriver, designed to be both precise and quick." diff --git a/code/game/objects/items/weapons/tools/weldingtool.dm b/code/game/objects/items/weapons/tools/weldingtool.dm index a47e78bd57..720b0d7b22 100644 --- a/code/game/objects/items/weapons/tools/weldingtool.dm +++ b/code/game/objects/items/weapons/tools/weldingtool.dm @@ -436,6 +436,19 @@ nextrefueltick = world.time + 10 reagents.add_reagent("fuel", 1) +/obj/item/weapon/weldingtool/experimental/hybrid + name = "strange welding tool" + desc = "An experimental welder capable of synthesizing its own fuel from spatial waveforms. It's like welding with a star!" + icon_state = "hybwelder" + max_fuel = 20 + eye_safety_modifier = -2 // Brighter than the sun. Literally, you can look at the sun with a welding mask of proper grade, this will burn through that. + slowdown = 0.1 + toolspeed = 0.25 + w_class = ITEMSIZE_LARGE + flame_intensity = 5 + origin_tech = list(TECH_ENGINEERING = 5, TECH_PHORON = 4, TECH_PRECURSOR = 1) + reach = 2 + /* * Backpack Welder. */ diff --git a/code/game/objects/items/weapons/tools/wirecutters.dm b/code/game/objects/items/weapons/tools/wirecutters.dm index f53225ab41..181c786c4c 100644 --- a/code/game/objects/items/weapons/tools/wirecutters.dm +++ b/code/game/objects/items/weapons/tools/wirecutters.dm @@ -73,6 +73,26 @@ usesound = 'sound/items/jaws_cut.ogg' toolspeed = 0.5 +/obj/item/weapon/tool/wirecutters/hybrid + name = "strange wirecutters" + desc = "This cuts wires. With Science!" + icon_state = "hybcutters" + w_class = ITEMSIZE_NORMAL + slowdown = 0.1 + origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_PHORON = 2) + attack_verb = list("pinched", "nipped", "warped", "blasted") + usesound = 'sound/effects/stealthoff.ogg' + toolspeed = 0.4 + reach = 2 + +/obj/item/weapon/tool/wirecutters/hybrid/is_wirecutter() + if(prob(10)) + var/turf/T = get_turf(src) + radiation_repository.radiate(get_turf(src), 5) + T.visible_message("\The [src] shudders!") + return FALSE + return TRUE + /obj/item/weapon/tool/wirecutters/power name = "jaws of life" desc = "A set of jaws of life, compressed through the magic of science. It's fitted with a cutting head." diff --git a/code/game/objects/items/weapons/tools/wrench.dm b/code/game/objects/items/weapons/tools/wrench.dm index 7b1ab6a07c..652e32cf75 100644 --- a/code/game/objects/items/weapons/tools/wrench.dm +++ b/code/game/objects/items/weapons/tools/wrench.dm @@ -25,6 +25,29 @@ usesound = 'sound/items/drill_use.ogg' toolspeed = 0.5 +/obj/item/weapon/tool/wrench/hybrid // Slower and bulkier than normal power tools, but it has the power of reach. + name = "strange wrench" + desc = "A wrench with many common uses. Can be usually found in your hand." + icon = 'icons/obj/tools.dmi' + icon_state = "hybwrench" + slot_flags = SLOT_BELT + force = 8 + throwforce = 10 + w_class = ITEMSIZE_NORMAL + slowdown = 0.1 + origin_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_PHORON = 2) + attack_verb = list("bashed", "battered", "bludgeoned", "whacked", "warped", "blasted") + usesound = 'sound/effects/stealthoff.ogg' + toolspeed = 0.5 + reach = 2 + +/obj/item/weapon/tool/wrench/hybrid/is_wrench() + if(prob(10)) + var/turf/T = get_turf(src) + radiation_repository.radiate(get_turf(src), 5) + T.visible_message("\The [src] shudders!") + return FALSE + return TRUE /datum/category_item/catalogue/anomalous/precursor_a/alien_wrench name = "Precursor Alpha Object - Fastener Torque Tool" diff --git a/code/modules/research/designs/precursor.dm b/code/modules/research/designs/precursor.dm index 41284c64ef..88575e5667 100644 --- a/code/modules/research/designs/precursor.dm +++ b/code/modules/research/designs/precursor.dm @@ -13,6 +13,51 @@ desc = initial(I.desc) ..() +/datum/design/item/precursor/crowbar + name = "Hybrid Crowbar" + desc = "A tool utilizing cutting edge modern technology, and ancient component designs." + id = "hybridcrowbar" + req_tech = list(TECH_ENGINEERING = 6, TECH_MATERIAL = 6, TECH_BLUESPACE = 3, TECH_PRECURSOR = 1) + materials = list(MAT_PLASTEEL = 2000, MAT_VERDANTIUM = 3000, MAT_GOLD = 250, MAT_URANIUM = 2500) + build_path = /obj/item/weapon/tool/crowbar/hybrid + sort_string = "PATAC" + +/datum/design/item/precursor/wrench + name = "Hybrid Wrench" + desc = "A tool utilizing cutting edge modern technology, and ancient component designs." + id = "hybridwrench" + req_tech = list(TECH_ENGINEERING = 6, TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 3, TECH_PRECURSOR = 1) + materials = list(MAT_PLASTEEL = 2000, MAT_VERDANTIUM = 3000, MAT_SILVER = 300, MAT_URANIUM = 2000) + build_path = /obj/item/weapon/tool/wrench/hybrid + sort_string = "PATAW" + +/datum/design/item/precursor/screwdriver + name = "Hybrid Screwdriver" + desc = "A tool utilizing cutting edge modern technology, and ancient component designs." + id = "hybridscrewdriver" + req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 5, TECH_BLUESPACE = 2, TECH_MAGNET = 3, TECH_PRECURSOR = 1) + materials = list(MAT_PLASTEEL = 2000, MAT_VERDANTIUM = 3000, MAT_PLASTIC = 8000, MAT_DIAMOND = 2000) + build_path = /obj/item/weapon/tool/screwdriver/hybrid + sort_string = "PATAS" + +/datum/design/item/precursor/wirecutters + name = "Hybrid Wirecutters" + desc = "A tool utilizing cutting edge modern technology, and ancient component designs." + id = "hybridwirecutters" + req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 5, TECH_PHORON = 2, TECH_PRECURSOR = 1) + materials = list(MAT_PLASTEEL = 2000, MAT_VERDANTIUM = 3000, MAT_PLASTIC = 8000, MAT_PHORON = 2750, MAT_DIAMOND = 2000) + build_path = /obj/item/weapon/tool/wirecutters/hybrid + sort_string = "PATBW" + +/datum/design/item/precursor/welder + name = "Hybrid Welding Tool" + desc = "A tool utilizing cutting edge modern technology, and ancient component designs." + id = "hybridwelder" + req_tech = list(TECH_ENGINEERING = 6, TECH_MATERIAL = 6, TECH_BLUESPACE = 3, TECH_PHORON = 3, TECH_MAGNET = 5, TECH_PRECURSOR = 1) + materials = list(MAT_DURASTEEL = 2000, MAT_MORPHIUM = 3000, MAT_METALHYDROGEN = 4750, MAT_URANIUM = 6000) + build_path = /obj/item/weapon/weldingtool/experimental/hybrid + sort_string = "PATCW" + /datum/design/item/anomaly/AssembleDesignName() ..() name = "Anomalous prototype ([item_name])" diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index a7d05818bf7793adcfc222ac07735d5a27a5acad..f1a46abc1d3e72a7bb283156dbfca10a3b24e97f 100644 GIT binary patch literal 17896 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 AKmY&$ literal 13932 zcma*O1yEdDw=KMJ3l<3OBtSxfySqCC*Wm7MjeCF)LJ02e!QCN1@ZcWY9U6O^bME(7 z{Z;qg_p0db>b)0B=ALuRF~?dRp`;**j!J|I006qQl$Z(tz)(EDkP!g@zzr&gfL{W= z)HGehOr4FLEFD}d?d<@-BQ8p7(Ckp;KWKh3sYus@rMwEDIf6WApnif+ zl(m@`2~MDH&T)pg`Q-n~+_w`;wZpd3LSRk|P!1lNuG%#b`C8&|O{%Lz>$KOC9>6D$ zOWT%Rev9J^3i@qa*i;+8*B-`PJV&np|9}6vhme ziCF}ly3|=jqfKCr&$oE%P9D&P8sHsi0;k{fEiMdTOckwX9EsyFYKPxy7OJ-E@V6*& zq6<5|e`3vq{U~B@Dq1&JG3Qk;-wuNzGMty;YG(-m6o9mtu$o8eVVbuO?&i`}1qwVq zvI#d^=u3)Ul)`jzw1GNPM;%d8ub3l|{%)>GTg5bIGEZn@^upEE8Pab>^p>7}RNW(f zi)^N6xL|}+k!2S0$Btl`|EE&7|R!*g(8pwH>Z7qkODdTIzBP6H#fuC*|||@Asz-B z9$US-x_Wkz+xdP1HW}+xCvqS%ao{bRZfoSPUovXy>e*|1ABWRe`x)QC4nV-0I4b8w zMdhJor7!BLS*Fx9kk~1o`)`s{SI4{awJb`y{kyg0)Y#aVIu-0g2}gyTEsMN$?y8ED zeSR)}e!65g))C;h^5*%*q}0eZJY=*${+uPFwDkQqHp`b1v1BoDNSIJU97+Bxl)#-A zhsm)nyc7Jr{gdL=b_X#y{_>z5Y-!U~XkI?S^)KKVL&4 z0a|J;uuIH8XkH4Ehl#iEbm}4kRS%zfe$JZ}fW3|0p3ss2BtAEK>I(;A^O9Od<4@g@ zcZ>bxAGjZB22Uj=DNp-gzSkUyVgSqDTYl;*Q-KA`_ZgKtE9WJ5gn$^j&63{G^dDIk zD+(l6E4Jl~jXwrAcWi&05{+ig{n4TxgY3P_+bO^7S133=cuolFt~Wl`k(!LS*52$y zoap+C6O+4SJOw;}6Dk>5uZ|PgCcHi+zdsJsI-EAkExRq0g=T%;AW^ud${gM1|4o$c z4G%Ew3##;9P(M|#dbdB6C2_Os3Pv@@^i`Ujb-IclNFNHtK4P|9AS~Ai21+a}WGkaf zdBG~L9AHE}Zr$Nkzg6Tv9KROu3kY^UKd}@gjpUbbz0Q2B)J0SD^&1arv{_A%1|a0a zP)z0}r@sd4XVk|r@IcEUb1^OA;^!shKb1RAM!mi^>ko=B$bR?Ib@eAz(;*3DIojVz zVitE=oUjmh*H6+2dEy_M^_Muthv3 zt)F=(ke}Mz)!jjx?@+`@(MB&dex3?*Fl|Z$9nlp1PXpoCCs&UWF@ImDj3nBX^%m)Iqmx^4QE;ye%~jc71PNr&kjSptwqLKd6}!-5Hq zCBB|kK8Es3@*CZc&T;k)^>=$tg7=&IUeU=u=1CX$j{-49KkwXQBkf5$ihIcx4YSvg zsEVsm%14Q^(p+?sF36YN;;K&5_m3q8FR$fK_Avpq4>RKqUD3%awRST_=T9q`HRRDw zPyLE*jqCz+4|`rphl8Bg{q5~Xv8n#L!Ur*e2VdG2;Y;DP>)iw(9oS=;j~i9Q7$Dj? zkj_@R+iPOx-&%c0C$T@>sn7S86dD?{@NRZBoiJgWRyW+fiqZQm%Wn;{9RX=$DCb?mRx15_qvwaMlyKvzt1IZU-}0HW{%G&)v|iWL!>oZ9_B;DWrw4W~Nue3c zT0H5T^#HSe*8|Ur!XYRaCmz-F&JSz*z#5n1{UHsWyJ z8s?}^=623M*k)v9O+aDfc15{Gw#FW|e_dP60vtI?F!?lCh~WNqH$cQ7ncXsPOy;m9 zI%?WyFflV@Ng6@`W}95;^#ogkE5(HZhG{uDlZHk{Hf>Bz3yaDnx~ETGBnyd!KHObX z^YZFMyMU=j)6I?J>UgC>%J1y_ywSe>0q^eWFlcDAOP+HnSU!cr==N+AJ2w1V8RMs+ zKe*MBHIJE67t-lZm9@Gb|7RyMG+< zY&Tst5^0lfQ*Hq}xOGo5judooR1rNrQX2Um!9RWwae+yp<9S)=#2jJ=TlgcAUGc0j z-?;^d046pXM2%DhwT~Yu85k56`_vuL{U1E5yzf*(bG>;4`1-0Z#SdZ~xx*t6-;vD) zSc>8qcX1i^v^rCUq1^5XR$GylAJ>Y@wabcEDp8SVAxmscJ`93}|4hao$y1dOA*%NHdLjj+3;W<|LSc56H`pH-NtsT)b^_`Z+FWLS0=~h?Og9)k>iEqS!lIa5&8|n4XuWIu^Ao3;Cv7q{n^R1vRR;i^TUL=kM;_D`u5z{x2lz< zL*Mir$#S>4&-qZ%&|)s3M!ha5=Owktf@G1XGKF^l5r8JS8q@J9!>QuY7EOj;WT2R(63bRUj2wjr_Kh zyc#C{RxDj{KV^PpAS^=Jof{i`~iAx@-2LbTKt zF2)I(Tn-{`w9%Rh!0^nZC+Qn(f{ytw&8(Rk&hs;`zxH!_$b*mpA1XzSeMdY7-2oWG zX7^*fD3i$oMM*O=vkD$XoqD^?Z;S@NnXK_311UKqQj@|~2Fl#sZ%xDvWCG5(-% zx_PX(c2=9MUFS7ay!N&&YI_bx;O;xOGYuG;^KZeV?Cs#9Qv!EZL`$xkF9$QGJ@|eK zj#SWZ(fV%LPykjYd92c?+u>~Ltpf=XOL{r>800IR+Zzuk_p6MiVC8PYNP6z}Ya9d4 zPu-93Ys6AgCo8cI)QExGo_NFX!FsPW^t%e_Lf7$rA3yX=OW0tE;k;a>Ul|)4v-A!4 z%+W1-%AT}r!qFKw84MMd%xN54QtEKj?fJ2G_c9wsy5CDV`?vY0rg(32*3p-taLw=S zM9+LzDg|MV+n)sLZRS`IJFE!-i5Q}g(9jNkt&nhv?2H8pgnG)`HhU@L za<gDB&PPSLr9!baO7}a?y6;F+Y>(g?MmOOacHfj1HwkMOyDJoCuSk=O0Ps&+GD> zt2VWnDpW2kEEEzE3A};7ygP0mMc5<8IT|qB{FP`kmMNU=Cn^eOWo>ObiAgJRK|hv| zzNXXW!<_;m8yM^orP?vtVQ?TWYqom1CiP=!gU-rq+#k5X^@5O(fL1XLmc7%Rlo|GA zs0kJ#HqOM~;bCD#c-+!;?(H31sk;W`p{lAX3k!=A7V-{TxvplcvY#I%UB+-=5K26L zC%@DrhZHh?S2Vw9#>pV%f;_Rhmru;?V70}M-J;>gU3I`Mmenu+YI=!MHn!jE5XMY% z6-?8lP@hcv=mIl(q!81WXXT!znECwdsJ1Omc<|QxFeO088C#D$q3e00_|H8J;`m7k zQbli13)%MOIIwghF!tDp;cO_#@cZFNGGk0d0YmxHYpxy^R4&MDttAacIY!;eFc852) zo+ScKTOx}WF6gepkp;D~(Dbpzz^A4ym-;|oUzh;xPK9*7xwj8TfrbKr7>){$BB^+I zu#>a%T#|tw3ea%*M~Anyy{U<3(dT?*m2Vs~S@C9v1Ch-Zj8HwA?&7Iv0dfDP!xP%OOO!a$FAZ+tiLreHFez;0%IE$;Ch@h-&v_JAaIfb zmIfd|eUTjQw*}AG@HS`tO8egts{es!ftSO99T%Sb$z89-pa%Y! zO#ZASkeDcomaH{JB)fP)NK{0;mdDN@h>06Q9tx|=qJX(9B?O@b^l47+UM9ICHg`+X&y+trd5 ztbE+@z%VEpGMPCZ0#j9fA#y*TrT4_dssk7JH-BHQU4{sJT?nvMrv_FDAb-i2UPP(f zyy|==PX5tD!e_+FH-&qqi%dYn{U8kA&18}(iX_6rUQWT?&&Nc5d_(94*M(s5myd!f zvo_jzs)eS^AsqR&uYUQx=ScZxiDoOOGuw6*m`$}~HVo-J*H%)4@33X+qGx7S_Cc`( zR-GDGoirU^V4=TH+13)KEzsLLgeUo&^ZSL3{|2YWK_cf#C!_mn2QQ(+w8qf4A|BRN z4`a!UX?wm2@{b9}J%PS=l}PTLPP^fy(6xM}64PXDis>(yngH%$AP4&J*S~^DKCds0 zU<{>0+$LGfv>*JG4*4xD$2{dEZw}}fuNM@`)VtRlI_&E2%2;K;In%+SMz+J~*>{{o zbtLyjopydEt(syce41j~nvIg;tut4usX9pEDD@NL45>mXd{AErL7y9*ecBS*AXF zcm?VRz(SoZbvH_UrmIja*{{yVFtV=xgvUVPh0O{$$_Em*WpB>q^v9wDsF-yK%b0f2 z{e&zdbD~Vh+1Xk6N49JBc^icPq6Oj%eiIt%87Jn0U*2TDRsM=YW+B89h#Vl~8%T$` z$1{Z;PcbiCFj;kT<8i_l3%(=!28Wl6f^r3ATx#kIu+P7LO~84X=#3s7-R=6F{~Ru&ULT(a6eTQyA)G7bG(vpx8p?&1}hs7c}16vNeaXu{)mya&@Z!-7!PUh zvXEPku1MzEu%;<5-09a3r6Pzq_Rgdm+;r;Ptc1mDFaSK3`#jo|_>R?3mcpbsQyPuc z(Nm2608DU}Xt?8H+@wMg_DNYbPbI6R zh2-?~6sDcA6iLLotAL7NJO`wHtbhkABd88wcNj7`w8`%T-p(GnIT}7f#6Jk>l3P7d zMnb~vM6aAndeH>8-BY+$eoAb=vf1$`rRje~5>BWuhAwM^-dTYdNvRY1706>$I6`jG8 zlVZwHnyveA(T4yEic6s=2?@#?-Uy%wgjRi@F(W>K3zbM zIPn>~{x$@Te_RQ-WPCKEZWhk#YWg@ANu->mKEzThRQzUTiAwD!+B_Rmqny;3J7-vd zNV6p&Ynh+mYg@~Bx%nAM&6(*I(85chta<8cdQHI%$~isPqNfpb#O$bW;1W}(xm5S; z0+RpU{%-$JX4{eg=$@!SU^_xxt((N*e@>aKzyAbp0yA+G&kp1 ze}jXAmD**bb|}_p|19ZXTfHWA#dbZgwE`>ybj{fTCDOQPFn{%(^QpairOSXHEkRxS z$DH5Ss|gIl@tjO`rrYsd7daxBxkES2vQb!}B>C`2L$TPvXi4ti^`s>`OxX*#v6|<& zMShN3$}E+lt~SMg!+8&sB`ol>5Z*8TBgcL|lf|D$5 zN<$)g7@U;5=ONMCXq(eX7Qgbz#aOeUlok>y89Tm8l48$F3b>$*9HAU#HWB(Ui|^CL zx@1k0r$}rRA4Y4i`9^K{Dx@Utngjs4B1YUCFJt9mp&TO~I(HmY=$4BR3eKKgzoIx( z_ULm^yVPh^&9S4h5#_%Hz9b|Lin{aofwtHQvZxKQ{~;%dZ{|b%&TI>H6NdLFi z68?FtV>6Z7>^7l<04kHHaVR&p-XHF!GIexWPJDo=J9W9ZY;yN|E_`|rIYl?Spkwsp&CaN){414P=fiEn)=?( zoQ=qcBSmYB6hRnF+?!6|yZerJZbfO^7djSti2#Z2i4n8j#YWKhKVT`iwI2DTsIe?E zrQlzS8J1s|jQgxdt{a}(u+o&F0wDj%R4-X`;8HSA4OTOudIhKir~$Wl9=^*SlM+7H zOYQ{RPOsbUj(9kXB5n|SOR z&_#+W@98+Kz}!lGsLqUL#9@3?!e)4kj6{9?`gMmDKRnu5@8zuzWevatT||CftSdYU7FGIPHtv8%*6qbp-aQbwMUzDx@+ao?0?HHy2*DKtWtu z8U+ZygNMun>fZd*OK!@@B6CUT2$MDNJ>Vw-8?%u?fBmCy$C^VpCy4ERA=wRX*B>+P z-77}3)B?YN3{@s49LDm$ymWv;4qnU)2b8Bk{4P{`ceT2N<)R+;)gbjOWZuYqu$nwdHN!n?BV3rGYk65hyu3tl8?v0bREe1dx>!toMS z>0{cqYbn0U%>`NNCGn}L(I79eU?VD=wz65Miy^i(2nL%wPFzm>cFA4gy`YZygqUl> z932TE6>aD!Q>RDN@qeAa@4{ooM9?5DK}|y#!$j~x_q81?NRI@+fM6unjC_d$E4YD{ zJeF&{;rR`f0!N5)RPyio^USHGGkkG_wAXpS{1&=ocfBwBDWE`-VfWhVL2BHb8WdGd zGB0`+q5LTV)&rvQSXbi6C(&%52sjP7`+|~5)X_*yfm~h1cpNL;>7IHXp#88BHuW9oVgWH{f6`KHm!!{jV_{>qT(6fzQjib=ZZz<|(6T=^MCX>*5XfW%+`W;hwabod398c_V=1 zy6Va?-SrRr*FVQm7gtD35$a8c-GyB-{u^B@l$4Y(uU@?Z)tU43^oS z!PvlMH+>4kpd5oFV&~G!@iqis-_U6v#}59S`41_4^eq6SKLL>XIjJP#3O$^p=Sp~_ zg%2DVt6E(I--69Xf(Q7QcO6-p8+fcCTi4w#c|)E4-`X&o!E6Y(iWdMH`v-0rT8tggQu_4F~(92|dd) z_>ccBhth~#P*HFa;+U9G3S?@kL@LaWZ59~XZZa(AB8J!xdNzr!Mpa6(+gm|~!W;tD zS{BCII$2bnRdYY(bS#YLMNBVz!R#*cFU<@3m)yaQn(C>l24%NDzWVs_V|Y|lcm2nY z>rLP2Pju`WVeg-w=C|v~ck5R4V667M@Tb+qyZ?EN5eOtELshkt)tSYg#Vqklgl;T9wl;#yK|8uJykR{L8K zg35>6qkz;XH{ldSGa2o7Is(Cb9k3l=P!ID>hkrtS#i=Fcq6`NI&3-4o00uwJ4>7h6 zOGg=wY{~CbXvOU9SpglX+|GuzbAX2=@dWZ;LHFV7N$BKy>rJ08e@;He&5n?2hu3%e zwp$5Z0nfA7W{&&|-apF9)BOH4S*?Z!XhME^Qxx1voddEo5Faj4wu~=dUY=&R``lK4*VoaB5|6@j z-6d%9eRE+z-?xzkR%ronN8j?Z`y*j8R!>7=j;>{=%Pez3y#<_)b~X}n(n^9q|MXL& zpr#h(TfbiRW~AzmOGxO3NC43CY)&!J2j3IS^{5I(*pB}MhY%koBdgXc4npU(m` zP`_^Wg##!A9>r}I@VJU;c=~^*@g{4RNjyD1R>`QU;(!_!SeNxMm-r@;d;X2*7?rGN zr+_KK1|VxkPVKh&D+hj0)C=K<3-xe7aY;$9tswv0;%=rFP~DC-P~j zAA|=)!EN|=@7{qa(P6a%rkyWX^ywM40@sjfUK@f43LYRy zux{fz*(ph1Cx-YK9yzyT)!!|ZAf4?ebpT47Lb)R&hV zPTXhPe0jh1lD(Sz95W~crX+A?r$Sv?%={$rVX06;LPDF<^7a~Pz>4;eb7~t2hUsTx{2?-mfLUVIvu51&2 z!mv|o6G#1_lh^WCj&r zlxSO#Z@6G(VVV8GZhcxH_%LX{RBJusaJnwu)7#tWdPwAVx3E%Iu3HVC0P`Joad8~j zI_2w5`sm@dz+qxyQdzg>0Dq2R#s|dx_z@XK=0#TuZR@Q73!p)3Vk570FvAkWNPq+$ zkr$q7xKzLO$3nF!T7tR&n$-Rp;J(ieyddTn-oLXwZ0{!;>q3{nU_5(40O>hR*Ipf+ ze^hXv;Y=9;b!;p_H1i`9X_USFeHb8tM!qW$0ZqHz#Sp1n?W^!zfdR{;f7`n6#^WKs zoAfoE1UhLn0veuSXCQ(U=nfXJ&n|GZ*f{&sQZ>cXXD2JHtDI4Hplt{i6vd(;@L)+B z-S_%k=%7$0)zouDjF@$wtaVp;U0N|PGRDgL-Ma!pn_-M16*FNjc3!10D8qM`E(Zqw zEgCy3-pBmHGyKK}SBg>UUeg0^{kdwXHzg>Lw4=h--Xp)N-^ryG99&F+U?w)IPRZV!gNjBiCwhwSQu zq9r}?K4|yY&Q*(-rrfP-!{#S7m!N+(kc9~BaJKHABEnyg;mkL=S~o8|lT0q}y4pZq z#|NE`5A{I%T;y&2;(Gmq0jM(rsq%vR^$IeeL#D8pf~D(9oA3KE@28!e@SS>muoz4L zx7?}*Nr67v&u{>VATCtE>n99KFNJEi-20JsG@#OWMEd<8x8cfejaB*=n zLGj#`6jG{MUSfwNRTdvxsn2K9@q0TTpd-BY}2pP)Z?Cz&3%QjDrJl?)7yU%hQ5w2<7s ze~MuEX)Ms@2|z$X9Wnm9^?I3J0LL7xYF;utTv1UZ%DhrZV8|jtn7ek}d)&Js#TN97 zH)phO`LNnlxWAHly7#8t#l5rF`*u^K+_l&sP6gV=pCuVfh7N#R>d~_sSe<7M{iN>U zmSLcb-R$R`hLw=8G>VQ&qo%K~K#J{+vcv-my%A6UpoJUr3+JiJ@D#J47F_s?9Dg{#B6?Gj>4w4s^ec z%=Cg44P+BO$X%8yQEuDy#38zr;c`X6U9K9!VtM`EwdsJ17bAc6D>;Iw0(!nUhq}o! zLzz7sG5h=lVyv-S6qr1*V)8f=DEzq2E;d;IiX8|4uPVG(8BDK5Z4*J6dVz}oayH}3 zy@wfkbUKNW>9iWo?dR8^rAVN9w0cQ%stZ!W0uYkGU_qb7$ZwbT*#P=QXN8l|X@46t zt!(y~aYVB4+Mr?=iLKp*j<-~H9Ij()J-_AS+i|G#)fOK>V8n}issOnaHD?8|T>5*j zCr3GOw_!S#2Q^G44fx)ns@OJOCh|NENxL%v9;G|*82c(0DN!js8>1~wnj8;~rw={W zN(v9Rd7^~C>Fj3PBd_<<A!)B59uS*F9!d=DM$Zdf+sYQ%iv^ z{RZPO(qTKz9Z~Oj7ch<2on<8f+ico8hDy{oTYUAW!eCT- zXtGNf6c?VWM3C#5)oLrNsJwJ&nk_%O?ydNgL;E!`e<+JQXL|2ZpGS?^7np6Z&+x0u z;cBi;Id-YHMp98gwBSeq&ogL7lW?<8c}9#|xz?cfdQL>DHeMhcb_*a*C0&G|$~9gFSq>F3 zwr*|y!9SyTFMG~H?-o$F;?ab#h~AO;7N_-c|9AGT4_bD=L>Bk~+nh_VZLTzhi~SkQASBGbtr@w(7PW}ZAf%1jk+PwM zdV5SuI(73fcLBu5d$POXQQH zxH*PDZ2wW_=Spdt6X}yd8y(7bhOjmz&-TWKw~F&$8Mcqf4<4;~R;b$G**?Ft5TFm( znto|P)8JpfQ)R~+p?3l2z}Zkw?B%~-Jv9J79|O7Y;!ojmefP=Ocww>pH|rksKSU2s z!H)a@35!8!x4i>Aro&*?l9$(OzuxAs`Nn_825*O4iNSY`Q23_LO4;ecFVVq z#dIW5=jFUsoUk%-a>0|k!9$x?=dYF+iN+tYAHIq9TCxzT=ZQs)e4p@#m}mHYtC_R$ zxSBI>bWWE(rixE`Mv{?UdB3!RzZ3XaKPD0y2Y!%6DWYEg_Ce>nDvN3XgefGFsX$d;9v!$=>w+!OsK6st z96EpTf+;yL7UO2$;OU2a${%g`;^JZvRp*48InUmREYUFN2=(-MOPs)NLYrX3H&2_{ zVD%cTNJZFbS{*FTdck50-D??q?cc!{Z^)NXf!V8*q;-zKcxjZPSMNbB+<9BUtY(hM z=f>fgG7b$58H20{aRc%uRsgkC|M-&h!zgRQ_(11Wo4zHu_2#Oqd_*n@HAeh3^tayt z2~hL9$u`iJ%D9jgOTS|KFB55&M`!}Fn zTYiGpcLGz2qDHDHZPe=bPa*z3y)ae%{nj=vH%3n5VISp;r+Y#Sip}J4lfQBj(vCwx$J@U_+#1{Z+A`4sbZCtV3N=vpP8<(GKcgKX(-E}As}@4B zJ#o8D*qpT6T;HXX|4=mN^0TN|{F18(&0P_Gs6_9l6caLY#U6@WR2qVq%o2+3N(tScl`*p(byTv$y~A`9ExzjUSrz zQiQj`kDkkz3oFyXQiU@m+$Lzu&Q-H`p;EyAb0HqQKme5LpELC-{tzQ|6n#E2-6gc8 zsBeTR@Fg;Wb46}z5~dK8p7q3-$g?*97`grSLtW;9V|Oe!Ee0GOMnh$DUK`7ATM+mKBv+S{`zlBjSFD@BLk!gxIg0t zKCUY($5{=PRZN{4C^(I7KWL7lko?Kp;l$^R=+E%nth9l4rJ6bIk1~?}0>b+lQjq|d zZEZ|^y|TOA{gD$R)=aS>zN@8Tn$s`;Kda>U=rsiJfdh3H0X?zWR z7z2TUjx+fMH4rrU=Z658$I_4MY{x(PuDHCpNc*xPZ1(_?5!%Ij5Ys8@AC1!R0y#1l z|C1AsU!*Z-)R>w^??u5*!F+ri3C(Y+(Pw=7oWxXkSB|Mp)4t`jUKqyt&0M6>BnW%F zEjmtNNb)P()yt!I6*M3EHJcwp9?C7rkJFB9F_B5l#YZiE%&X!4-{c^Dl8;6Ma$tr| zQ7cXr0DS6;r3D9-Qnz*Nsb@|ri02_6S+if=JtY3Af87ZCXKujtkyl1Cn>@??0vv+s zY02Q~b_WUBP$g&5TyT~OD0^IYZ(U!;DE^P7!N72XmQ;wH-&!<> zWRs)lml=W{TO;%Y0nu|kLNzubaA?}C(Mu`yPQ;?n>Qr03Xwg{~=`Q_*vBg8}s|Eo> zQd=BS$5QnBd%Wjd^9h%N8_DVMQDzU#6IlG=GKTh44K%w!BO96F@5?b8rhsi&g~Ypd9$_q>~*+STr@Nu?Y*Y-9Sp071?u?k^BUyo9+*L_PMk_Q+pDqbo~tG3c%it?+~E-x z&+8g#zC8+uhDXr&S&Xmk;u4u|b@Bv+bo-{S>BC>=Z%e^0-3_9r9&|ycOnEqmz5eB_ z%ImW(4fZ#IFNXw71qD=9LA)@PxZpaN4P%_qK>?*3Fg(zFLfuu033J#m7Ya~NmpSxN zcg{!HV?JVW@hrQBuFtkEMl+ZBvfhklbh^0xZuQwA#C6GRh6mHxOXxji`ch5Kw9D@q zulAMm7T%ZIm4+}#fcF(-$!Q3d;c4lQBLrYc|NK&=vjI#51!R*~`E8_aAjWs!^f;!C z5`w+RJ@;aSSh=sUobS9&wOZ)j{UNhUH-1E`MY{Uhq0z!W<`DA zcz8JcxNuM8E~(6R?)LLJ4pOngLYgKFa9b}p{O8TI`Wtp^9#H2WhY4QC$0h^!QK`h- zKIE@!G=RUd3CF_Xp|_h-J*7{52JCPG#7OvUH-ADVR&p Date: Fri, 5 Apr 2019 16:06:29 +1000 Subject: [PATCH 02/17] Fixes export reports not mentioning --- code/controllers/Processes/supply.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/controllers/Processes/supply.dm b/code/controllers/Processes/supply.dm index aec0d624c7..f49730f25d 100644 --- a/code/controllers/Processes/supply.dm +++ b/code/controllers/Processes/supply.dm @@ -100,6 +100,7 @@ var/datum/controller/supply/supply_controller = new() EC.name = "\proper[MA.name]" EC.value = 0 EC.contents = list() + var/base_value = 0 // Must be in a crate! if(istype(MA,/obj/structure/closet/crate)) @@ -107,6 +108,8 @@ var/datum/controller/supply/supply_controller = new() callHook("sell_crate", list(CR, area_shuttle)) points += CR.points_per_crate + if(CR.points_per_crate) + base_value = CR.points_per_crate var/find_slip = 1 for(var/atom/A in CR) @@ -151,6 +154,7 @@ var/datum/controller/supply/supply_controller = new() exported_crates += EC points += EC.value + EC.value += base_value // Duplicate the receipt for the admin-side log var/datum/exported_crate/adm = new() From baf740ea0d2a91e445ded84d6225ac38c791dd66 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Wed, 10 Apr 2019 11:53:52 +1000 Subject: [PATCH 03/17] Fixes tesla logic bug --- code/modules/power/tesla/energy_ball.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index ad79a052de..08427ba027 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -247,7 +247,7 @@ closest_atom = A closest_dist = dist - else if(closest_mob) + else if(closest_machine) continue else if(istype(A, /obj/structure/blob)) From e1fd4cc80ff600f41bd9bf76cf06f30255dd6838 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Thu, 11 Apr 2019 09:54:25 +1000 Subject: [PATCH 04/17] Allows restriction of z-levels from spawning xenoarch finds --- code/__defines/map.dm | 1 + code/controllers/subsystems/xenoarch.dm | 2 +- maps/~map_system/maps.dm | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/__defines/map.dm b/code/__defines/map.dm index 13b1bfd795..7d0f3706af 100644 --- a/code/__defines/map.dm +++ b/code/__defines/map.dm @@ -6,6 +6,7 @@ #define MAP_LEVEL_SEALED 0x010 // Z-levels that don't allow random transit at edge #define MAP_LEVEL_EMPTY 0x020 // Empty Z-levels that may be used for various things (currently used by bluespace jump) #define MAP_LEVEL_CONSOLES 0x040 // Z-levels available to various consoles, such as the crew monitor (when that gets coded in). Defaults to station_levels if unset. +#define MAP_LEVEL_XENOARCH_EXEMPT 0x080 // Z-levels exempt from xenoarch digsite generation. // Misc map defines. #define SUBMAP_MAP_EDGE_PAD 15 // Automatically created submaps are forbidden from being this close to the main map's edge. \ No newline at end of file diff --git a/code/controllers/subsystems/xenoarch.dm b/code/controllers/subsystems/xenoarch.dm index 7f3e292c1a..d863ad8269 100644 --- a/code/controllers/subsystems/xenoarch.dm +++ b/code/controllers/subsystems/xenoarch.dm @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(xenoarch) /datum/controller/subsystem/xenoarch/proc/SetupXenoarch() for(var/turf/simulated/mineral/M in turfs) - if(!M.density) + if(!M.density || M.z in using_map.xenoarch_exempt_levels) continue if(isnull(M.geologic_data)) diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm index fb695a52a6..490f4eab8e 100644 --- a/maps/~map_system/maps.dm +++ b/maps/~map_system/maps.dm @@ -30,6 +30,7 @@ var/list/all_maps = list() var/list/contact_levels = list() // Z-levels that can be contacted from the station, for eg announcements var/list/player_levels = list() // Z-levels a character can typically reach var/list/sealed_levels = list() // Z-levels that don't allow random transit at edge + var/list/xenoarch_exempt_levels = list() //Z-levels exempt from xenoarch finds and digsites spawning. var/list/empty_levels = null // Empty Z-levels that may be used for various things (currently used by bluespace jump) var/list/map_levels // Z-levels available to various consoles, such as the crew monitor (when that gets coded in). Defaults to station_levels if unset. @@ -178,6 +179,7 @@ var/list/all_maps = list() if(flags & MAP_LEVEL_CONTACT) map.contact_levels += z if(flags & MAP_LEVEL_PLAYER) map.player_levels += z if(flags & MAP_LEVEL_SEALED) map.sealed_levels += z + if(flags & MAP_LEVEL_XENOARCH_EXEMPT) map.xenoarch_exempt_levels += z if(flags & MAP_LEVEL_EMPTY) if(!map.empty_levels) map.empty_levels = list() map.empty_levels += z From b9c24a3fa7c29cbecc2c065fcd87d65f4cf0b801 Mon Sep 17 00:00:00 2001 From: Heroman Date: Thu, 11 Apr 2019 18:09:09 +1000 Subject: [PATCH 05/17] Allows the request console ID to actually be changed --- code/game/machinery/requests_console.dm | 33 ++++++++++++------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 002ba894ad..de4e8a4685 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -205,24 +205,23 @@ var/list/obj/machinery/requests_console/allConsoles = list() if(computer_deconstruction_screwdriver(user, O)) return if(istype(O, /obj/item/device/multitool)) - if(panel_open) - var/input = sanitize(input(usr, "What Department ID would you like to give this request console?", "Multitool-Request Console Interface", department)) - if(!input) - to_chat(usr, "No input found. Please hang up and try your call again.") - return - department = input - announcement.title = "[department] announcement" - announcement.newscast = 1 - - name = "[department] Requests Console" - allConsoles += src - if(departmentType & RC_ASSIST) - req_console_assistance |= department - if(departmentType & RC_SUPPLY) - req_console_supplies |= department - if(departmentType & RC_INFO) - req_console_information |= department + var/input = sanitize(input(usr, "What Department ID would you like to give this request console?", "Multitool-Request Console Interface", department)) + if(!input) + to_chat(usr, "No input found. Please hang up and try your call again.") return + department = input + announcement.title = "[department] announcement" + announcement.newscast = 1 + + name = "[department] Requests Console" + allConsoles += src + if(departmentType & RC_ASSIST) + req_console_assistance |= department + if(departmentType & RC_SUPPLY) + req_console_supplies |= department + if(departmentType & RC_INFO) + req_console_information |= department + return if(istype(O, /obj/item/weapon/card/id)) if(inoperable(MAINT)) return From 6af11c7622da7b1d6abac5d49050b6455e8b482a Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 11 Apr 2019 11:31:05 -0400 Subject: [PATCH 06/17] SMESs no longer turn off when out of power Basically, this stops an SMES unit from setting output to zero when it runs out of power, allowing an SMES unit to still output power so long as it is getting input. Especially useful for Solars. Ported from Baystation PR #11973 --- code/modules/power/smes.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index ad76cb061f..8628315601 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -144,11 +144,6 @@ charge -= output_used*SMESRATE // reduce the storage (may be recovered in /restore() if excessive) add_avail(output_used) // add output to powernet (smes side) - - if(output_used < 0.0001) // either from no charge or set to 0 - outputting(0) - investigate_log("lost power and turned off","singulo") - log_game("SMES([x],[y],[z]) Power depleted.") else if(output_attempt && output_level > 0) outputting = 1 else From b8cda8b5fc3914c6ad1c41d0a1537b0939a55d4e Mon Sep 17 00:00:00 2001 From: Heroman Date: Fri, 12 Apr 2019 17:29:19 +1000 Subject: [PATCH 07/17] Changes shakers to use initialize --- code/modules/food/drinkingglass/shaker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food/drinkingglass/shaker.dm b/code/modules/food/drinkingglass/shaker.dm index b653f14c60..6ea411fbd1 100644 --- a/code/modules/food/drinkingglass/shaker.dm +++ b/code/modules/food/drinkingglass/shaker.dm @@ -11,7 +11,7 @@ rim_pos = null // no fruit slices var/lid_color = "black" -/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/New() +/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/Initialize() ..() lid_color = pick("black", "red", "blue") update_icon() From 39b49858964eafa995a7c937680c2c1fd946b182 Mon Sep 17 00:00:00 2001 From: Heroman Date: Fri, 12 Apr 2019 19:16:33 +1000 Subject: [PATCH 08/17] Attempt 1 --- code/datums/observation/destroyed.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/observation/destroyed.dm b/code/datums/observation/destroyed.dm index ff8778645c..650909f86d 100644 --- a/code/datums/observation/destroyed.dm +++ b/code/datums/observation/destroyed.dm @@ -10,5 +10,6 @@ name = "Destroyed" /datum/Destroy() - GLOB.destroyed_event.raise_event(src) + if(GLOB.destroyed_event) + GLOB.destroyed_event.raise_event(src) . = ..() From d7bb5ae2990d43b37d45966a49a28dbeb2a36443 Mon Sep 17 00:00:00 2001 From: Heroman Date: Fri, 12 Apr 2019 19:36:21 +1000 Subject: [PATCH 09/17] Fixed announcer ai powersupply runtime --- code/modules/mob/living/silicon/ai/ai.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 5b6909f042..adac86b438 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -299,7 +299,10 @@ var/list/ai_verbs_default = list( /obj/machinery/ai_powersupply/New(var/mob/living/silicon/ai/ai=null) powered_ai = ai powered_ai.psupply = src - forceMove(powered_ai.loc) + if(istype(powered_ai,/mob/living/silicon/ai/announcer)) //Don't try to get a loc for a nullspace announcer mob, just put it into it + forceMove(powered_ai) + else + forceMove(powered_ai.loc) ..() use_power(1) // Just incase we need to wake up the power system. From af20e0e349649f7ae818c35915b7fbf1237cd5dd Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 13 Apr 2019 06:05:53 +1000 Subject: [PATCH 10/17] Fixes newly constructed conveyors not working --- code/modules/recycling/conveyor2.dm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 4121b8a558..4cc755d158 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -32,12 +32,7 @@ if(newdir) set_dir(newdir) - if(dir & (dir-1)) // Diagonal. Forwards is *away* from dir, curving to the right. - forwards = turn(dir, 135) - backwards = turn(dir, 45) - else - forwards = dir - backwards = turn(dir, 180) + update_dir() if(on) operating = FORWARDS @@ -60,6 +55,18 @@ operating = OFF update() +/obj/machinery/conveyor/set_dir() + .=..() + update_dir() + +/obj/machinery/conveyor/proc/update_dir() + if(!(dir in cardinal)) // Diagonal. Forwards is *away* from dir, curving to the right. + forwards = turn(dir, 135) + backwards = turn(dir, 45) + else + forwards = dir + backwards = turn(dir, 180) + /obj/machinery/conveyor/proc/update() if(stat & BROKEN) icon_state = "conveyor-broken" From 01d5434e96058d16a4fe250ee25f7397f7b6ea03 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 13 Apr 2019 07:31:25 +1000 Subject: [PATCH 11/17] Fixes misaligned circuitry gloves sprite --- icons/mob/hands.dmi | Bin 27527 -> 27527 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index 6f23560d104f652fd0ac542733d14ef6377e5526..87cf6172c16a368cdb7cfafdec5f8454c84d5a5c 100644 GIT binary patch delta 6487 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 I?R)2c0Kw@pzW@LL delta 6405 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 PdWCamoo#B*T)6%}i}45u From b85b76eff7c0a1956d114c66d6ab906a2eae427b Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 13 Apr 2019 08:30:47 +1000 Subject: [PATCH 12/17] Also makes protein shake and glass in general initialize --- code/modules/food/drinkingglass/drinkingglass.dm | 2 +- code/modules/food/drinkingglass/shaker.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food/drinkingglass/drinkingglass.dm b/code/modules/food/drinkingglass/drinkingglass.dm index d4c8389a51..604b85665f 100644 --- a/code/modules/food/drinkingglass/drinkingglass.dm +++ b/code/modules/food/drinkingglass/drinkingglass.dm @@ -65,7 +65,7 @@ return 1 return 0 -/obj/item/weapon/reagent_containers/food/drinks/glass2/New() +/obj/item/weapon/reagent_containers/food/drinks/glass2/Initialize() ..() icon_state = base_icon diff --git a/code/modules/food/drinkingglass/shaker.dm b/code/modules/food/drinkingglass/shaker.dm index 6ea411fbd1..3b81c6bdec 100644 --- a/code/modules/food/drinkingglass/shaker.dm +++ b/code/modules/food/drinkingglass/shaker.dm @@ -23,7 +23,7 @@ /obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake name = "protein shake" -/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake/New() +/obj/item/weapon/reagent_containers/food/drinks/glass2/fitnessflask/proteinshake/Initialize() ..() reagents.add_reagent("nutriment", 30) reagents.add_reagent("iron", 10) From 62194c80bae7d64915b969841ffd83a1de75a4dc Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 13 Apr 2019 13:21:59 +1000 Subject: [PATCH 13/17] Fixed the vendor machines zapping twice --- code/datums/wires/seedstorage.dm | 4 ---- code/datums/wires/smartfridge.dm | 4 ---- code/datums/wires/vending.dm | 6 +----- 3 files changed, 1 insertion(+), 13 deletions(-) diff --git a/code/datums/wires/seedstorage.dm b/code/datums/wires/seedstorage.dm index e21bbb9faf..8268d936b0 100644 --- a/code/datums/wires/seedstorage.dm +++ b/code/datums/wires/seedstorage.dm @@ -10,10 +10,6 @@ /datum/wires/seedstorage/CanUse(var/mob/living/L) var/obj/machinery/seed_storage/V = holder - if(!istype(L, /mob/living/silicon)) - if(V.seconds_electrified) - if(V.shock(L, 100)) - return 0 if(V.panel_open) return 1 return 0 diff --git a/code/datums/wires/smartfridge.dm b/code/datums/wires/smartfridge.dm index b611497e79..15f10cd800 100644 --- a/code/datums/wires/smartfridge.dm +++ b/code/datums/wires/smartfridge.dm @@ -12,10 +12,6 @@ var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 /datum/wires/smartfridge/CanUse(var/mob/living/L) var/obj/machinery/smartfridge/S = holder - if(!istype(L, /mob/living/silicon)) - if(S.seconds_electrified) - if(S.shock(L, 100)) - return 0 if(S.panel_open) return 1 return 0 diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 6715669fc1..bad3a0078b 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -9,10 +9,6 @@ var/const/VENDING_WIRE_IDSCAN = 8 /datum/wires/vending/CanUse(var/mob/living/L) var/obj/machinery/vending/V = holder - if(!istype(L, /mob/living/silicon)) - if(V.seconds_electrified) - if(V.shock(L, 100)) - return 0 if(V.panel_open) return 1 return 0 @@ -43,7 +39,7 @@ var/const/VENDING_WIRE_IDSCAN = 8 if(VENDING_WIRE_THROW) V.shoot_inventory = !mended if(VENDING_WIRE_CONTRABAND) - V.categories &= ~CAT_HIDDEN + V.categories &= ~CAT_HIDDEN if(VENDING_WIRE_ELECTRIFY) if(mended) V.seconds_electrified = 0 From a841ed0f678733d8a032f62e3ed5ee1512cd27f0 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 13 Apr 2019 15:17:30 +1000 Subject: [PATCH 14/17] Fixes glasses with overlays runtiming --- code/modules/mob/living/carbon/human/life.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index d0882bc97a..dc9ee9d395 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1387,7 +1387,7 @@ /mob/living/carbon/human/proc/process_glasses(var/obj/item/clothing/glasses/G) if(G && G.active) see_in_dark += G.darkness_view - if(G.overlay) + if(G.overlay && client) client.screen |= G.overlay if(G.vision_flags) sight |= G.vision_flags From eb39d0202c7e564894b0f67168d7c132f373c0f9 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 13 Apr 2019 19:21:33 +1000 Subject: [PATCH 15/17] Fixes resisting out of vehicles causing problems --- code/modules/mob/living/living.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index fae3542f18..fe06438c69 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -904,7 +904,11 @@ default behaviour is: /mob/living/proc/escape_buckle() if(buckled) - buckled.user_unbuckle_mob(src, src) + if(istype(buckled, /obj/vehicle)) + var/obj/vehicle/vehicle = buckled + vehicle.unload() + else + buckled.user_unbuckle_mob(src, src) /mob/living/proc/resist_grab() var/resisting = 0 From e2667024deeae6805f205c64b763a503b06ebb48 Mon Sep 17 00:00:00 2001 From: Mechoid Date: Sat, 13 Apr 2019 20:18:43 -0700 Subject: [PATCH 16/17] Fixes Alchemical Furnace accidentally installed in Mining. --- code/modules/mining/ore_datum.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mining/ore_datum.dm b/code/modules/mining/ore_datum.dm index da97a26873..b54ac6c5f0 100644 --- a/code/modules/mining/ore_datum.dm +++ b/code/modules/mining/ore_datum.dm @@ -158,8 +158,8 @@ var/global/list/ore_data = list() /ore/lead name = MAT_LEAD display_name = "lead glance" - compresses_to = "marble" - result_amount = 1 - spread_chance = 10 - ore = /obj/item/weapon/ore/marble - scan_icon = "mineral_rare" \ No newline at end of file + smelts_to = "lead" + result_amount = 3 + spread_chance = 20 + ore = /obj/item/weapon/ore/lead + scan_icon = "mineral_rare" From 1bfad629ce9c91fc3a81380fafecc1c5289a3a2b Mon Sep 17 00:00:00 2001 From: Mechoid Date: Sat, 13 Apr 2019 20:41:06 -0700 Subject: [PATCH 17/17] Fix my forgetfulness, too. --- code/modules/mining/machine_processing.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 2a84b7f844..355e40b362 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -171,9 +171,11 @@ "phoron" = 15, "silver" = 16, "gold" = 18, + "marble" = 20, "uranium" = 30, "diamond" = 50, "platinum" = 40, + "lead" = 40, "mhydrogen" = 40, "verdantium" = 60)