From d50c2b9ec961774ad9f6c4794536ba429a9fa620 Mon Sep 17 00:00:00 2001 From: CollenN Date: Fri, 20 Jun 2014 20:58:14 -0400 Subject: [PATCH 01/10] Adds Radioactive Microlaser Adds the radioactive microlaser, a device disguised as a health analyzer used to irradiate people, as a traitor item. It costs 4 telecrystals to purchase, and is fairly powerful in clever hands. The strength of the radiation is determined by the 'intensity' setting, while the delay between the scan and the irradiation kicking in is determined by the wavelength. Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase the cooldown, while higher wavelength will decrease it. Wavelength is also slightly increased by the intensity as well. --- code/datums/uplink_item.dm | 7 ++ .../objects/items/devices/traitordevices.dm | 83 ++++++++++++++++++ icons/obj/device.dmi | Bin 23393 -> 23553 bytes 3 files changed, 90 insertions(+) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index bfdfb312732..6447d75bb81 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -398,6 +398,13 @@ var/list/uplink_items = list() cost = 5 excludefrom = list(/datum/game_mode/traitor/double_agents) +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a powerful burst of radiation, which, after a short delay, can incapitate all but the most protected of humanoids. \ + It has two settings: intensity, which controls the power of the radiation, and wavelength, which controls how long the radiation delay is." + item = /obj/item/device/rad_laser + cost = 4 + /datum/uplink_item/device_tools/syndicate_detonator name = "Syndicate Detonator" desc = "The Syndicate Detonator is a companion device to the Syndicate Bomb. Simply press the included button and an encrypted radio frequency will instruct all live syndicate bombs to detonate. \ diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 695fd3105aa..d636bf50139 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -4,6 +4,7 @@ Miscellaneous traitor devices BATTERER +RADIOACTIVE MICROLASER */ @@ -56,6 +57,88 @@ effective or pretty fucking useless. if(times_used >= max_uses) icon_state = "battererburnt" +/* + The radioactive microlaser, a device disguised as a health analyzer used to irradiate people. + The strength of the radiation is determined by the 'intensity' setting, while the delay between + the scan and the irradiation kicking in is determined by the wavelength. + Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase + the cooldown, while higher wavelength will decrease it. + Wavelength is also slightly increased by the intensity as well. +*/ + +/obj/item/device/rad_laser + name = "health analyzer" + icon_state = "health" + item_state = "analyzer" + desc = "A hand-held body scanner able to distinguish vital signs of the subject. A strange microlaser is hooked on to the scanning end." + flags = CONDUCT + slot_flags = SLOT_BELT + throwforce = 3 + w_class = 1.0 + throw_speed = 3 + throw_range = 7 + m_amt = 400 + origin_tech = "magnets=2;biotech=3;syndicate=2" + var/intensity = 5 // how much damage the radiation does + var/wavelength = 10 // time it takes for the radiation to kick in, in seconds + var/used = 0 // is it cooling down? + +/obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) + if(!used) + user.visible_message(text("[] has analyzed []'s vitals!", user, M)) + var/cooldown = max(100,((intensity*8)-(wavelength/2))*10) + used = 1 + icon_state = "health1" + handle_cooldown(cooldown) + spawn((wavelength+(intensity*2.5))*10) + if(M) + if(intensity >= 5) + M.apply_effect(intensity/2, PARALYZE, 0) + M.apply_effect(intensity*10, IRRADIATE, 0) + else + user << "The radioactive microlaser is still recharging." + +/obj/item/device/rad_laser/proc/handle_cooldown(var/cooldown) + spawn(cooldown) + used = 0 + icon_state = "health" + +/obj/item/device/rad_laser/attack_self(mob/user as mob) + interact(user) + +/obj/item/device/rad_laser/interact(mob/user as mob) + usr.set_machine(src) + + var/cooldown = max(10,((intensity*8)-(wavelength/2))) + var/dat = {" + Radiation Intensity: -- [intensity] ++
+ Radiation Wavelength: -- [(wavelength+(intensity*2.5))] ++
+ Laser Cooldown: [cooldown] Seconds
+ "} + + var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240) + popup.set_content(dat) + popup.open() + +/obj/item/device/rad_laser/Topic(href, href_list) + if(..()) + return + + usr.set_machine(src) + + if(href_list["radint"]) + var/amount = text2num(href_list["radint"]) + amount += intensity + intensity = max(1,(min(10,amount))) + + else if(href_list["radwav"]) + var/amount = text2num(href_list["radwav"]) + amount += wavelength + wavelength = max(1,(min(120,amount))) + + interact(usr) + add_fingerprint(usr) + return \ No newline at end of file diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 1e3090a1c6391f709ca04e083e538b6ca6b33807..db879f05ce4bc5692d340e802c218f6056c373f4 100644 GIT binary patch literal 23553 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

n-+v+Qe=e|};$zr{C2 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 literal 23393 zcmb@ubzD?m+b+I`Mp`LBS_M=4q}uNDOWGW`G}Gq2lrp0>{%-Mt*$TmiuEbB;-KO!9SRrB+k3I@78%7ylf+ zz4yWRL+h4AI)te?zpQ`kVkQi&&c$wUA-S*yc`%(UJOAlM@5b^(Nh|dPif``RTNd*& zo{6AGKl&fKKPu;W^wh&BOK#+7&*qxh6NMv+s{SR>m>T|8pKH-suhW}5ambru2?<^= z*d1Bqd>u;WBeTL%H^(mjxtJ^`s7UuCSG!3Uo7q<#Hna0WEt=nDlfmfta|OpGZ(5UB zXVS+Gk#K$ zjKB1Up+HrmC) zHPN~hcd0oxhUaD|hqahNQ;`?t%gwuVVrLVQSTuxvh7YO$~8^IS`fmuf>_JD9Pxil-9Np_VC9F(7=AmdGWgwyR)zxc-E>xEJp> z$j|mH<>{}HtY_6O%Xy>mbon6#;b*YlaS@%g{^HHotXaRchQAjQ$PfQ~4@U7;+aZo$ z;#Nmwa9V@!+f|4>wHJM>#yiY8Ye$urV)>9Qhw@LCcDtsPkDN(}ND|o(?!un4g4X>2 zzz^KLt!m`=c_YQwkJWpw9nB`dGT%?3u68$@7LxsHmO9>yk=8x(LX!HW*DCxMEJS=m z$ykKGt1F4V_M%X|!+4wZ&cYDg9mu7FFu^cZ848*VPUgs4D5#9&r_J&@!?#^H|5U{~ zLmy?yy5#LT^i9cxg99&SH5vi?dG;({BzSd$ERF2CfPiYBlO~No7_-u@D3C1Wm^q9% zy{oq6vL5*HWx?dqRVCa;ITI&WKkc~?Rp5A1P?g3ky~BlkjDo$ptfOaU7TF%nO%AB3t3!bB@bH1!US(Wi z`W>2L*nzH1rzaiz&t;|Z_24HP=rjsIQ-cr)0fu-yVFp=|CjcN#w|N*v6qWMWfuRo( z2JJ)wfZVbp9v;Bwe4k9#c(gPI;{bq1!G{%?*{nvlcPGoU03^vuqA|j4ez+D z=Z^`0`Es1_D(vOUOrOp1nrDk=xMW?g4Koiv=}lGQ9F!W{VglIf_Ze^bu2{=T9Q1sl zX($)9;<};tF-^wcL-3#Sr%d@u z-ANf5(OiD}-Lg63k?ehLh3GDNZkevW14I@CE&!&@XFdpNP>up};{3=20QLP2L zNUmoOIk2>7Rh^7l$cO+<5MKa|(C>uG*srllfkyz)mh|(U5Y-uy#kc8gSav3pkDoj`*y9g81qqf03aGvbZEPUOQIoUEn{9)(|JAy9YURJ}|s`*A`DPG7Aw^@C| zXT!{<=d(O}nT%S<;vxBB@Pka46{el{gwpr3oN$psK`^=TXKg~VRq(mWx9wW%Rj2d6 zBI&zjQLO{}_3IaVhd0l%u@4kDSRL%x+wI`vKC5i}r=*aoMwm(W4R7|BQMc2v^F&2^ z=nM>V)Z}gs97R>!OBB~DU{1j8pB&w>`g1VXlj42M9gNR}-VkbaZDdDak#yon)~ki_A&F~)*B+AO~sRE@wDO*L9v6W8dC z;C*|>zA_yxhpJ!lo|#cyAeY-YR9%2kXEI%&*h?8TJg14GO!1gme^I*Nt#R=Dh1|#f zhlWs~(5k_lQ_-)K5?GMt#|DYzts(A6H%)){7eTa)am}0@u6rDHod<{T`93)uBn?+7 z#_#bD45G&F0KJ$wx+(nLJp1vTf_XkAyZFT%7IMlmW+EtCWu6_3iIp?w^YT_6%E)Pp zt;mi*!F>W$5UEAomq@jn9!`kVsb}#E3r~!b1)!fE@0%TsH7+M8PR!4J+c}pQrI znu8=ihnfqIJ#H-Zq(p&+&vvHidCP~+ z#2aFlew6TocIR^`)Dap7N%wr(g~>z-l7>XnAm`6FSx_ucJBJfWEAH|p)+M2w|J*cg z8Kp;*K+Md{9DJwK^bc10TNgc9{HYtXK+C8HXB8y0pZp*jek8Eq@;!-YHR_U!{s~_Q zz*bXC^aMt$`rm6imCpUBj;%;8gz4<^mS*hd>f^1B-;15`*S$nWN?=S)KADXrxwcxf z)LOI0(TjF7nftZqRPhjHw*}=c%!QBR92kl;01$t3l@a3=$Mm#5{IX6Gzl4NtK#pUgqjN&4HJ0D-4}mFJMx92h9!WU#3r=#%pS4x+Zc;!`G$uOc z<$cWLmr~m8>8{>2EmTRV_1@k5*yFciJmG;*D8ggaqn!mXdO`rqt1Z2@$}rrXwJ|g= zLxOsN!*L*+mWW@5-W%i#!Iw?#ecTxt*xwuxa+t3Fe#J_YR3s{j@y7eL;su>f4fGG@ zLJ^3Z`-}?ElxLV*>eh+y+89CPHs|bAr|r`%Dglc-1RJd z;>U0PdozOr+nhm2F??GGw~(gO5@KbTK1iXc{J!IsfJ)jU*XELMj`4(blt#q!Sgly6(Wcw5lJk-qU!r$NXZWA|Iy;P4rncTK zL1k_gwJ&}dI~d8*WQq-!NY`Nq1F_Us+Bs5GR8%f->CIGJpl^4nlR64P?6+;_heBcb z#(&-2be1yC;)3~bZ`v@`xHnw-xmhn zzkhH2>+L0xJVR=MdkN{;*=?@=;Jb|}*@il0K=D5;PddH&qXjA?-m?9i=D* z+uP5dH@sfm3?XQhTheOK%Ul8t+C^*B&+m!_ql-3{<`YUwU(Lu1)(}5V%|Rp;!*2bVTG8A_;F&FphT8%3q}0r$q}iFq>HpOPi4*MUM- z4HZbUv|G0~D?zh+|FaxRo$q!#;TRp;E90y}f{^e0dC4$vOTXyR{P?Dhkz-&kY7Vp9 z^~v_Uf=^+o8(O)JnLT-WVL#w_RXv1l|6C>|?=}rgUj(;I4s@kK`Ocp|{}CFZ49t`> zaJ$zw`FNV>3Y}dosYl2w_-r&;GH{O*e)aFM0w>YO=Q1y!QsAs()f;n%Gz}TUCAufk zhf%mvuT_KWoE)3q??tul-D?f?omL%ykzR`$ezC^v%pRE9Kn0u(^2p+tn>?A<^)Ul( zg=x%{*1%biKwtWh$rJ~&Wqoccevm;Mwg4Bym>+9%BEy)~?$eTkO_8ED|J+Hha>}N| zAX+p6ZSSuGv;tut&;Ik!oFNcUC!aCW=jI9(2>VJ4|NHc-IbiaX8HEgSpLA~uhcQ>` zUqA+*9F+a!JA8@o#PMKP`!&PGCF-rsI0tp1gb(PF6(6m+5@IZr$QeT1PlK#HVjggF zMSTtnqsWyY{Qhv&dxGO+H5avpX`q@}8!iY3ck~f3!5?YYnegz!GMtvMbkuoQON%++ zaP5-LqaqVP#oqplI4SI4P&Z_F5549R4uUEdEQC<`zIHDj`GT71sAKiqLGpyeGKg~UnsrYrItB5oB3uGdLxbWu|KQq$)B5m zO74S{Y-akQ5|LB)NRR;mIKL2BXbY=ONOh~`Ro!3eCLb3)nZmj0+-*(@+#a6d3z-2B zIy#i;q+Rm37R{j4g4&G7xK29g#QwtK$;pqF-reu6UOs+^aSKFw2=OrnQl$*71RW(1 z1JtancwNDczMw-iL7N8iR!Fadx$FiXCgU@;{)OVnO^QT)Mh+vy+VAU28W@yMD zkBI-Q-q8uSj)+m;7Wk@x8!arj%oYkCF&_NGI7GvkaHf%~xw#e>|9p@6cOT5H0-Rn* ziB&_XT_-!BVr0a6v^7=m+lMWMn)B@0P_V~-cssqLc@OarHldVnNzNSHVBggQg5*mK zILSQb4mS-_k~I8U0%SeTbEQTsh^la~2%D3Md6$TOCB2?+(_QPNWrfJyB90V2%F=MZ z?nFVoK90Y1qOO}(MX5{09B@*xink}>WnCvDzkU@F#SiUWbs`fJ6>WZd>7Jf}K`4k+ zASR57ZC~GEsne{413tv|Xog)0he^&$klt)oeQf9bJRMnF9`$5$)9^94& zdKdk9odU#rUzds(ZSr~=6+%FLL2WuhMAWTllOl(7se zvUyNR$#eSp`Vg01TR{9#RoC1myPQ0l&mCKfJbH~dnX)c>?`FQ;l1O~LI9j)pgL;f5 zXMn2AR;tkEi5OMFSq8xI+p*{WF&J)<_x=a#@c+rA{0|R(z|6;8j6HrZlq6#r$hjtq z+kN+&nmjJ2&M#tWSeNdlfS`vfE z$sq$|<>Av9N#&cH1*gA#_S=}4K_EwALFwNMIFOy}2FOHBo{ zSSDv#4s;$~#Lo_iI}+E7JB>-k_fa>9+1VFoa}uqdeJ=!GBS|(qhD%!eqoV(}PCK4k zUVZhV->#gbkh$-da$I{{KG>RO+96B$jl(wLwiG~8GhP$|au~1eY0E2NExZksiPQUb z94n^)+Hk|~r{3(ea>%pq&NyNT%V4c?-*{EMZ*?)J;*+oG_5#j6B*`od?zL+3A}5#M z5@+b>R!vzFrJK52tx7LCSGsAOY}IYMuZD}t85JZ<)uOB#-)vjywjv?q?qX7Wpl>cK zgZRMH_u%_}Vs=AJB50Mf4Q8Yt$ud)g)KH;y{8c$fhYYZ}XUQ^tMYpnpIiK;!8i z6kR`y2fOxr6+!Vx?r1M=0b1_t%GGoaf=5dgXe_ zm%l#B8ox`Kj`4#VVZTGoaUtD`VWV3vwj50;d)|RzrY1+egFOY_@*2JXtYyP?$O7QuW)&{+WB=zLNKW< znDfRWr4C*joQoVUeqH^+KIyopnkL+bvQ(>?uV+3Ub>Njm+SF8F&i~F+GnvV%3mri_ z5|eag*XLx{Fno2pA(#W62rhmff4}hG^qfd}MroCefqqyZu+&vn0#WOj=i6DF|EcNE zP1%Mb62vN@+_ zF~4@xB2^D(U=6x}!p3y};-3mF=T2$q|C((656JMpV5mE;%wfz1s&TLl+DLpk%HEVGCo^$86&=4anW6jR-(?I+E{eK?0{)nN=0ZJZcbc-1OP0wL; zSM|d9F|@QuC5_zipnE}5i{P%SF{d+(8bRQsW`(^&k04<{06kLHOr}i%q%Pr z;MClvKc)HjgO3}R0bHX3=((h5Kq~Q$ci4fiWCfwg`?1~#scysf-L7)+`LBE7E|L-O zMyUO96z4AlWA5w7R#TnJngR3eBn#Qt#zkEKvq)vi29CGhu6q!MtJ1zZv9f;{6psOUZyrg65d$9!W@19t7{pJD}K856uiPoP~} z94v4IDF00$lE;1eB-*X3t6M#WV0Bz~+uN#hxcTe}7G1Z!w$3MiRwqeDjKnQ(V2lbH z$^`gZZLprSv;+HQ<#uAsd;F!%$h*8?eGUR&c12qf5>{&WQYiwA1_R{(Dan zJ8yZdr2C6?1rhhm6FKD`zsok0JjZ8i%RvVi6~~|7tk%agk**<&W=Mz2wg57C!Z{X< zX>+(XWU)Es@N@!xNp= z5qqyUtNP2l$dkd<)q!V9_(y|T5bVK-1Ms19+w+`*jZH?0gg%=m_MDwg?Bc%j3d?N` zTqg@12@C-!h$Slp%CxBpINiFM8Pcsuq5_=JN3@T5{Vo8^q(l^aOZcSB8|U)`FvCoG zHvM`x5achJCY+g-wQ3rv3#oCRRf`&h@%*Px{h*0pV^&l?#K-eLr8~x3&7*1s- zrGvQ6#qy`UCijeO2yo>SS@Q}9x+Zqy+`cp)fqORuTlWQ#$pmJ2s^iiUBdCDXUp?)E z>eRL^VYGgwPjy*YS*=Np!Mw1vleL1Mie5B^xBFYR#8ya-Gf z^|)GnoUKEb02i*$+*|1UE&GU}FHH=4cN6kavZIlTMx=nZKs6=ZU?YJ6#STZV*>Z}qg)&C@WP(p23&i^FLlHn)!pFe+mr1?*j z=1Ke?A$ylx`o8FJr%-2%ZK|;GP>{=wW?KwbRnYTf5t_c)b+SemKdN&6blrLE`Y@FA zdM?&~#v|{~{*+zG9M)zK0H6df&i$p3+)rsM5kWOjBodB{nV=imhBN57pk#v%J(=%Q z9(6{TL=hazI%;V+KhZ4nuL%Zj)h3wy!Dr9)&vh!-I9i{3GPyPNbEvF+c_Cz7?1_`v zJh}BJDgST$jAXPGR0qV@Y-ZmcQ{DvLizw*!8zE5C&2rBUR`jn~)aX^KirDYgDf()d zZDd}3nA~?`oC$c^IllL_H+9pa^i_?O@u32v*C$z2b?0HllY#8JFH>LY4HJ}XZNupS zb@OTsUkWR7*7F0k((GSnj&qsxbfCcUJ96?JoCP`SDQ3c|7n$sj6NR9{y^#>%6D%xX z^-`4Ip6|N{$MRym6F4EpO&p(9z}@6Qpli$Yb-d~0ynI9lS6p>xsQd`B&G5|79%^=R zz|$PZy|9?Kb_{2JLkw3UY?V>QTP0qU96)Ce24jM@+_Uee#WZkmLxAZkn=et`_)mqk1fAIA}L3XxJ1mhfLM5(B7hF^3w z*A7-!66;yrKKQh5z9^V48lLK-j~y(L)Og7UsJAj9*Ji25#3>V4xUYhvkpTx``%TO_ z2X9`fcG`FMwRA-3C;#dN3ZG=>LhW8vs$5@FRLCL(O30|87IFY2${78s+QhdNoxk12 z;g^Eo(Q>aD$(%OwCd~+_Q%c3OwSNOXRt76vzMs5we1xy%tbB#97jV6#QBPB;-<=k4 z^5NjQW3cE=N!*<`jeIcYfLZ_>ZQ#4D5#U^iAi@wV7kbI>qc&xX3HG%DMg0gW{yZtX zkX?qJaLt$_@yEKiw+_UBFBWrIztrtm;3IFhNYjp8Ckbh+YSGL0)vnDkTsu*_lB zzZI|j)foYr=k_x`y_(V8GE7#9IfKP$YRsBv79XI@}I+ z*Ef7SrXy^F%~6B0s}7HZelC{WEFz>d-lYb>fMXgWcKsIR4CwTVJ!Z%TRH%?t-xhl> zU7T6jod=M2-;K^WH@EMt-i3P{-N#A+2f;PDM&u8R+*z|H)97YmzS$j52U2ckj?c9G zhysu+MIC*v2lE35*>}`P8i`N( z30xPrOtqcZ9TgLkaAtI6#lcx8mTF<}Q5NKa?{_8GuUiJ^zP~!Qc8Oy5YjmET^3~L~ zk@a(DSP)E zHpv*un0|q;)##P^OSi>7lkI?>I{V)KULVjT`R9*cz>4+#kJlkgM;os~L&>^=*TrJF zCzDcRy3`{|pZ4;8Rt#=&1vGtps(>b2$U=LgqU;#k;kH<4mRcp4-+uURPqHltW78RmGg%f%f}4OvjQ=QDfe z>7b|%q(|9DC)th^f~qshXk%kj#dfO>OYVL=*YAX~FcEDD`5KPyH)e@JPcZ@DFvYLk@%Bf7 zYI*29+M%*9{39yg%FB26jknd!w;OS;KvS=2$=u|ha^+FQ3!@xxwA!3otM z<}bHLZ-r)N3T}*hce(wQQPjPQ_NafOaYNgTX>CGLeAIU1lPXwa4>rOL`enp01}qi&OJKlS*%yU?NP+M5SOli_0lVd5dC$`;a;7fjEu=n zV*-4rmgfuz61u2yqPD;KB$TO^lCK2E6T{Jm2tJdGDo zS^c!)vgMs!?87gOAvT><+{pgv;s8EtI!Rq~JZqLykO=}6 zfUJ@ZwfOQ4+V>y5q)|0@B}sR#-vUiYX|jodcMkYISJR-1iu5M%=Qaq_J~#0YKfjMt zUO{+R(B8fjjauZXX}5*kj!cy!0{d)W9Hve9f_m=?^UwsSi)Rl{6NN!7PGWHg|IRe- zS5_HqI|XKu-8)1CwKQE5XxJ*prNH-N>J2Y@7y~2n{!D|<`g)xw5C`4R)M6pULnRM^ z_8&hSD;-aBcVrkP!rDmZb}=y2vb~Z|)3Lopjbuk?n%XWLY(Mq z`Wmmuvr`#kF_syly9zI36b^17d~sPH&{M}c5-5ZBCx585v@W%l?c~t}yK7_~?QdXlpA^ING4E3ay5iI`_P@S9-J&3ci+AifzIrRr|CI!gRtYky1|UZKI@&1tJ(bzFVPV6gG;jpi7(W5`ypoXKkb%7M-;ARV+4iFq4L z|FxG~)$8z)peM2}mF#jwk~S?Ab&i*eO>_Pc&cC+>U|K`yBMy}dPNi}?8NEHoZxPN1 zW|g1s@U?F8-dzk^hMZN4WRiQC`Y*O%d@hZ=&q)k9Y>wR7xh{4T!K`*gY6MqkFqn(~ z9>2n-Z7hlh_{jC9H&(?c%1@4tLQ0H~pgNX}BXs|J;VhVC`bs-w2(`Abu;5Q-c0Seikw>rK;#f7b!Ld;S;s~AUlB&PAxy(lZEY+*#G=^(cu=-0HR^xS zPn&RoLY*ehNRIu8ErY2?>p+>9e}I6qBkdhtoHFm|-A?KZ&e>xs!U<+-SmVP-TV9E$wA7N;*NO?d4V z$!)mrQ?mZOmb}DV_V!;V?qYhwP|@&yOc0KjGU(U_v~9r zYM9)&Tg$Xf@8r4-KmZpw#rOMmA%DGvzr83kgnp8SCyaVuzW>o$wkUgzD-w$DaIag% z4DTjkN9nC>WnCJ2*D7MBJN{ZwH<=JK5^-QZv{!k50=BCA!ktac_z#%UwAbK86n_cM z7@!8LBtFLP?6_}VHMUuhhKB6s(N+kaCEC^)aeF#54wHS4s#H;nWQm;R;N@j37`9l9 z<7yT@tH;o1IP>Iiljr9bHr%4X#gJln*pncD0MT4beGzkgF~Jz=%hcN@dX07-3^8((*F^e zl1W5bk_wOR&9u^h&}3;Bm(oYjsjuT705EoOK}q$m+J~?m%DRd7(Eluv1AcUNid^!& zf0GeiKRXCtITdeE>?Ba5z#49_@%k^2ApYLows1pcS20me%c^PgQ{CX5V6quRg6#|Gy^UK9^!s31Jr=0_U%k_SbN`+_sC3Fr4NM(Z zEZP2gjuk~L3pYOyp8rQLI4K%?(5tW-{dCrxTD|=u z0Xhoe_stWG5?i}HhUAN%%{pFoJHVB^gp~ttqM`?i1041cjiti+Jsn4f$||Lb6k z<8wxL>n8Y$@LP>;0oV@)9|*-~lsdLmK$S6F@y1UhFpitPZBs;%L(|{NO|M62U8FWB zgzYmk8Pp`X7(@5dv?r)nTsXg-KLJ*JNxfe|Iv`-3aEul~RS(AHpMbD0)VGJuy{y;q z&O(WWgCn9S&DCgA8xSY#c0*)w*->cngY^Ypxn1LXsQJ59TaAI{*sBY;k}UKh&TV0N z8*<{kM{P#@|JhJqS^TRSTIv6{Cive9VD@TN-Xjxjss*x*^49-c(^dL*&@+?7@%k`v zax%WugIqMwXrANto`rO@bkB(~3ywhAmBCft{;0t4( zV^T&lu5O>ZOhZbQ?ksKT*&u?62RblHA^})qGuTv?dpHBic>u89m^|radi{~`)1J?k zkShvHf zmI~$I@X@XM&h?l1kFNRQj})?3|3NKgZtklTXVvWYV)>v}anv6a`xe&k+`fG}JI;V@ zPqP?x1I#ZL^_^eBX>DNL8(%de>|vvq==7uE?4b6zoR116j52OVzEL0EfrW6Z)a|F4 zW-tZWa#|3FgQQoJB6wD5Xp2{$J*=Dv1#3jshSiULSyYg|Q)InsKeNwKUo=j{%$2}8 zzkdit>|=tlM1KaA`2WsOeKT2LvfsVRAaa930rFsW*>OU7liuSln2+l#FqIf8dc>it zjJ-(3c;RaxW_7cK#o`>8Vf6fd&2DL3F2NrF`iRSCudRqU zerv{lWO<5=_TAsWsMGd#MNC2m6Cf`y z9~l{0n(VvObzaJOj9I~V%V>Bp=2pZ#uU(@jRnC9N0L)5O?EP7{u~LBn6s~{q+t4ow ze#Fng0k7RzXa1jo1+Pqq+o4-(3dWlUrk7C?Xq0vcR~Tq33$4nQmh-+`K7uSQETliG zc3l}M;s!;c)N}bkthA~}@^h&W&|Kf?O7SHlz^*0`mwFVQ>p~k=wl81hdAwO*T4ELX z`t@7lg3epxKcsFFG0J{6LoP&|X@44_&SV$9mj+D~-h82t@Zfv16SW;|jKzZ}bJo_~ znVn5t&uZS29(rSEZ(qsx!qptd!8-}38rYvz#mp)na3J^~Wxy5adUIZqm19HJZTfaJ zm-NPxPRcFgLxR&t;d!9RsWQJ|^~|;#-|!hjnE!dg$+7o${0xtPUv>rSI&{cByW%XV z@$A(RxPXMv_5$t3`0)z?;!2F=jl&O#H|7^juOs#lQ-mlqEWG}ma9{RA&&1BkqXGh< z-~eJ~O}L*QEiV({^n5bMc+-$xE?sfVV)%@ZpkQAm+_X+re6BX;`HCFpmz&pZ+v#m~ zW||QwWkEqQN&7D5A)4k_9cpLM&c@$30kB5pWmnhzl6A*$VH9tdAC~PJBIHA-9qL2E zT*frvdVuq{>!i)^<9LyqeSA}8R~hYjJ?kvsq`70$3>c}=mD~&-g8ORX08X->r>>TM z=Jg)->ZNqxfR*fFaA4L_E;sp~`rcEdRC&nv8T1?zQ#&N6lIjr39*v3^@Ki#fIfLFp zYM^tj+O>yeTtcbbZy0$l!*7y#wZA#v5+%{dx#MFMwEF|8?mkx*cl+Yw{j^{(c179sYDGI0gOUG2J=YFemY|g|ZxD+isQYa#YuF2ecjUT%F z)t)E~AF)RBj)tRniM#KFGwsT?s&VO+q@S|{%w}SzYvTGYk=q~d6hc%!g#3n^O*^T8 ze816oTq6G)DK&7*Lmq7iO{?26yrpd<`WPeju*`gT^A=c5{Q@kls@_*3EG{fqZ%;R1 zMo~mIcgdCHB5n3Gw_AE=Dr=Ov`<_@QO{Ena4&9#aI39U@Y z`*0bWdUZW~7UHNN{R!gCh>HThV;iT}#=tOhNKlYs{*(#bU7>c)rR}kttKc7<%%qJ^ zZke`;#V;F3r>{H;9wj&!!6zzQ{xhmmplx?VO-)S>h+EZ1-tzw3o5#}2v2E`KT4 zUPq4}#nQ__<*rh>dCS1Uf*uf8*ZT#pToaP~MrB`te#Cdba&35bu>Tx*Bu(|h0eLD8 zs5}Z>Cm$N$E@CPb3?f2d2FltE1IG{(>9%uYQ^UaG{a-kW6zH$kkXs26sTi|{0B^?z z@VwFNN`F?q#pTVF{wNwo-dAN=06z~{V!4SNcDj?M9E?Y7&bCHKpQo_(Q9Nvp{OW%; z=+5512hsyWfXXUG1mtlqs4iALvBI-yC|zllj(1%w+qGQuV<$~jh+6&1t7Sls@Tb7cZ@3@! zdhyA!ZnYK?S)NooftrryojdSxulU8WvUnfZH8I`iU$rW$LGv#lDoP91D!A7@04o~p z1)fwukB9EI`Jj3izrFudGNA*%K?AxJl{XKwZTbiZ^I=!7;Fl1`Ja6lKsf#TQ;T-p)@G*47Cvz2zLNEG>S51r4eKu=r zyz<6YSpYR+uwj_5xdA_LW=(G_LOZOFE(yJn)yo55{03 zK^=$dEBy@$aO4%imr-?b{QbX zawt*kNvC)6uL0&Anb|J*OMdlBxz{m1Jq*Tlh4P(;9A0i_Xu4mABX1jnMe7l0?RzP_ zcf>7f(pQHML8r+Dl?fI-5m>f~jAI&MwYLPU7Qowz;mGD@hpAfWn>TM7aZ{*w-NhUB zig1}&NnX4?T=yId873g8tSNuo03bCC%^)y6zSCzj5mrbwR_hI)xOQ4iCD(kpPaElH zP+!23{@BwYw(HwIRVQ!Tju6PexJH1h*THnhg)$8h)Nu-a;OR3n9M~{=9k?p@nCA5{ zwUPF6Ps(`&crS#?`cl(w%#L}(OE7#&@z0@v{=Eu@(hcN`>a7EK>``V47jH9wM-Sr8H2X7E*9qLFJH6q?XH$(B*7payDP8h8e#x}4M`ww8b?iVX zDX!+W2ha{Ze4{6Mv2FgAfPjFAsA&Jj)8>)^#w$|DI|kMkAh*!aJ*?Y@=kuhX!;b6GS#i@2Ef9G6#V3bYN%6Ye`Lb2Nrt) z<7k>sh)w)!@=^_Vox(@eJ%4q0-fRg1sNmA>l@>lyaK^9ZcX|_kbPY^8f+aRZmU$62mGMxg%q@E z4%&mTJY*#9Q}Knod#*KcVT>x6mok88!3(kj^*Kp(kh$D`a~>DlbkxKI1uk?cz7&c$ zUf*(K=Y4I7LjV9+KcnGG3M^osS-yAatt?pO4HoA2byd6d9)pmN=P`jRZ*86x>Xx|m z?u7!kM*7PA7^&@^mn;J}0Y6gfuv&*Wi9=67(TC{U()KDu^SLzNX7E953d-Cs(CZk9 zpGe~oypO%7`0VxTz9LJk5_|7w`Pi2X>+@Zo_6O?0i+i1b^`CO}u#d+kluIz_+aKRv zi2XcxC$bS0Ersd}V9c0h&~s1{?xtgK;};`G+7-N{xuH(B-^=~Y5(CGxnngWxhb22W zBAUOeg-O%g0Y4nA%wFg@e%h?;47*YAm=$M=sJs;CZtzC#=8$F!Aa!3$YitlC=8j*6 zohYpf;vFpLGGXK>Sgz_qilRU`Qiyt+rdcQ_$BZ<4O=tSe|A_LWeAi96tt*#=6zj{(16a-W^(~zDdv!KeJf?DCSPIIKps>7^UePNppT6;(cR^uB z=4(ltLyX4y_5=XnEI<9f0P=V4MAqy-IK<~hxi5uwqlv%V6pQQZd=wTwi>uuhI>e7; zUa+Y5paQO+B>V7=ri^c)O4%3r@jWysi@9H0<}qW1u)5+B30m^Low2ewU$@Dc=h57< zkGod-e|8@$is;-~8U4Av|7z!yC5qu8Gt~nIibHiU6@|rDKekKMP{iOVs?rhSk$zEM zNeJwsvSb@GO7=EsrR-Od#f>cQ3C52~`#Ke_6A)Bt&kua{vU!{T?(VL+h~>#Vc+C6c zN9j;#RdmaB_|mnuj*hGYFY#&rz~Vc~Oi0!QbLQbI^q#P4p7rj6?;nqQETV#V0nuxf z>37T?)hn-yfe*|-a}}Nbgp2v-0pi|X=A9&~-5-gbv;tRy3=K}Ibae=1d3iAFX*||p z+^m7`;cG%{@bjS#`UBY$vb<>egEX-H>F_>SSUE4O+vbL{Xm3<1CjV-Za_eWWJl9Ul z_j!(tJb8kOJyL&eP64(suuT>!aehrlYvf6f#fCWMc8I!p*qNi^Ps0DAL2 z$uMQzy)+Xv%)OX7<#FcqU_4mIV6Ia@j+|0tf$Kj|5$99azWTXE;s%S>{V>*05(m$w zw@^No?;Vy;vI(uVBbZmuh)n z@P9MVm9d-x0fgJiY})SLRR9UoT^8Kkg@np&TQA+{o_dz3Pc(hnrLp8Yp?_sRYX4vc zCehn6OPKK3cM?CFR*wDQA8E!VF?8+VaYzMjK+7Amu@#nfy+*0z8y``jYwLalVzH-pkDMJ!)!834= zbnK*k>nmMQ9GCt|eINl}BZ|^tMCr=8hsqhkMAtu>Cim@7ak8g`_w5K)@ES8A$A(fV z`RU3vhrxFF^k`_Isz{vl1%W#mktL&CyEh3RuJJccJA?M(hmFetLV(X`|M$=M7VNzr z2pGG|?%ZCe@9yKnqj&_AaE0FMSRTky@HsrWS65ovH@~N{GeZ5f5*2K8wIbFj95fG> zpspZtz6PHS0$KL%rYTsJ#RwioS-iD5Q3YY-RcQ!NX1ckfJyq)+-}qw*ijRkfOnjAT z${_#x$TT>lHJ!f@ZHucfAE>Ui$kmBjLJq%vsj9k$Tc@0Tr-O4QO1t8ZrKlOr`b$$! zh__T3%Iwg>05Z1P{<}r4@xF|lb7c`X&11fqU!M(MKXBP;`(09H1_H0ZP>Cf6g1%4` zK$;Y3r-C{&H}(E~oN+85PIMsl_b`QwF%BM`3gvul2=hsuru)6T|*XC)XL()D~uM3J^k7X^$3)3etIW z1ws==K|rPRAc7!Onj%G#&_xlj06tKf(xvwrq=<_2rqVlvE&&20WG-*LnYCtSt@$zk za=EBN&kN4r3MkMTCQ! z+wpGi#iYwNvdCzKe}|tOhVvYpnRiUso7LXNM33puETYfbxHZb(QuUjoCmMzP^u6<0 zQfI_i?4SD&Q=V_=^{j{}e&mkuYVK-pn|SZNv+*^F_oqUn0{8ul$q-o^84CGn!b4Jo zG`!31J=e@5{TA!j;U}{zxx=S-MI%<`m6!G2_m9FS=Pd4VUD^Vn#Fjno-4~t0Mb8hT z@UWEkS}^tPiOUG>_||l+0GNu%{jYK&9D9%O-hv4ShRAz?V621!^Xb)9o<$T43$F?? zIey?wyVF5#k;}NaZIEZiam|%SHL>r!cAhO!J|4TURC~(q$9G2v$y8VuA=ucG?fCN0 zi%n)pPQ9$B@V`^243Uutjki`<3V7Y_1bV64Am2v?nZi>nDnKANCeT0 zJXlgTmCHMwp&f49!(9@|=rYFOWKOGkc^Z_^sU38>e7H8zYT=d_r zj4QZyX$VoSWg_|o`n!<*ZfJ&nLVk>6>B@uLXy|r~5CVLc=wY{x9HWvf<8)WvLJhKg z2xmynAIqpMi9-*$zA3U9>FfSfNdSk-;1}mSf189ZG_V}(9bb9h#U+mzVnR}BlO-fV zYbHggV4c7Qf_815+S)g;It9>KB^`mKbLzjYrz~yg{3^EN6QTn^6&}rfl>@s$J&Z^X zCTPwqO`^2O5X~W=#I`OBq(IFMWINLe8`aOA%mKQaAoQ!z4oAD%nF zw^GpYpU@##AHQ21v_CjWK1rWtRk0*R-iWAKa=#SF$x|K8QZrHJpmDPlM`)kq!?Ai; z*_Okq)hsK$52HE8oJYXA9B~g#D%{-9XDhX93L+O(4y~BZgTj&KbSqm^tZ%z*X6r(QqmlNeAU z{0}7~OxpSX*ApUNy|E#F=j&6p$iEtH4mAz}!g}|>l7g&dw}F@`>pTV^T(LLmV_8AVLjE;K$TCd7Z|g_k!V=u^Cs6R~#>p>51Urc* zq_dzM(wmzE72lm8zNPeX!MZwnLE3Be`NhRQ7HQMrYze8U?r(7IrFVGbJ>JM*nF_So zuf1DDX#{c9AUv)Ko29M{<}#I)l?80nEy=kKoCU~D66BB~NEAd1#DY12ffNt@UkBZ8 zYtbN7o%&)#&$uZZ?I|=c5KB^#AEJRB%2f&OeQlDgRkfi?K7I;Q_Cq2imp{o$iYw$g zOow?oH$B#Kp|5qbi^Zqyf8?>iU1w*v369I4$`bHULW@%B0!8840KK|7s=vQufbv%Z zakj$vnfISds)B2O_cXkCC2={!C~h#DDIAn5H%lVgBm{k)l_gB^2EvpF4Ms(ZIkUYWEY!k)eTB zI*}yDr5AP;x$CmDn%_%eB|ijZDG&fe^WFEwl+EZ*W55S<54i8?9p<|)Og7&9FuEK? zQW*9atm%NyTMWP@II&=i8p}-!VFnWZ#A$-sa%n1blsy^a8KPKOU3 ziyL;{QX3o|i%w#Lpc~l~>$z)}PK`C%cyzK{4;1J@5o&-3NJ4v0O!c`x7KBOE;=eQn z;@MOq?H%-gzU+x#*)*m?V`65rWIwPE_2SGI(UKsC^!VZGNG7N_JJAP?7zpQO+Uqc* z%ce>|wCyGWq=*BbpyPhVo@?l>i%B2J2+_17ri=b>BD(GKE2yBk0RrrdzftiLYi_%VrSkWi)jSU_qlgE1Zx(#Ap{SZT_*Ty ztLXb`-%CHK*M!ZlLyF%*+#;?PTIU!u0P0R<8em%izA;tP!__M75PI?Xw@g5VQL(<&w6F(p^1mqh2EdrW7SbYm)2Byi&NFOUOCwsU*1)c7SR{;Q# z5<5CKQBJLE>+`rs2)k|`FMf@cp;;#=sD3OZlYsTHvK-P-eTcM&zESjX=nWTVoAH}H z1Xsweg*3G#|1049Im&PiIUQX-{Nbi#(|otO5%r23W6Q}T^uWFIJgQI~yEfTg8XG;E zNl)&#tb}N_Q(M>y@x{6xJDaaq@D0_R;O3R>dXRrU2Pwb+5vzuA-+=6kz3%mTAnWa> z(x;{=L;!U{s*YtGVb2t}U>6zsW_uQdYikwogBOpulcW1)I}Yn5!*HE(0ynqTf0XGy z`Y)+}^-;ejUG*HnXZuf+Ggy`Ig4t+V zcLtH1iB)jfW1T+i)e1LX=uWdr4dr5kj>-V%mO{&uOv@Itt;sQp@sN#JI98KkydU_{ zG{6;=S>&nIe~G#u%+vw}T!stg4~B+hCyfkN#_T8>uY5;ygA~zfN0*X!A!*8A*p4){ zs8lfL{j2_nfyH+NHdJ`v)19J}L?#Dhf?EKd=MA_3HlC8R z${7#1O$2U|A*>j@G`4txN*+fPrOT zLRL5`!xXE{zICbKlf!{PY0C)7)$|^F><@S~mKr21A%S%K9NWM9`l%K*nRyRp^L#fM z{y~L8o;W2a7}v1zdvfT}!Z%J#D}4GJC#el?dx4MVRzLMxs#dm+oVd7)F(_o)m3h3Z zQe!V7E{@PYNY$6Bi7(W`z@71)M zk62BggU<&lO;0sLnAMMs?7<{X6-G_%%QZ%6P)_^OXqT_7@`5~&OBHTKC;;Z{E7h*Ob5V0^XU1fP7{;r@6n$na@5J|;9(Jo7Aw zo!h#ljFCi?%YSp|!=O^;Hw~#deJvtM&I+n|suSZ{u2ruZpfd!lR?LXh!4bldmP1zl1&RCe5zug<8_TkU0q2lYcb>wG&EH`+jUI3dnQ)dtm~bL@^AU~Wxo~P z{Q716^yyO`9-h*6+Ve3ZQ`1wH^EC2^^g<1yWYj%>inyQ7W+)E8LV=VVtG&@;^7;~C zes$i#4HXYdI#z6AuK7 zNjwvxmkkUUuYc=WSzli$p7M&jO_}XIg=?0}L~iY^kLmB~Qf5&vHa7`hJGvmO8?`!P zJTvARQ@W0$h!q#1rlzI{(HCnh9kR#jq$QXY%zHV(A~^Wc`ue)4Am7}SasD-SLKC%N zBA2|Tgqr5tsTp2Fny^QRrOU%i1}pWNDwKD$wq(?+5YAj}!;S$KiB5(E1#F3~DM@eE z3{FObRGtnBD-B@z{=4yL6)17u%tR(e7Yi~?wR-Qb^P$lSM+V#?jJt!}1`QTl+(U}zbmKPEF z?(ULoM$M*!?1TpW$X*v_HRt7{N29Ssr4BS}?AE4#dTZUW$>(D)jg_$=Iu|Y~m6}u6 zE_-adv&8fhR*E_A@fa26Sz0PlMX3C<2nq8(Ym7&!4wY9`JtS&KS<&xw36r!ukK!aY z=YriX1&msvTcpGk-{R>w-5Q8aX4JpXe{&f|k!hZWMTAmGGisgt^q!haGv*^sKh#>r z4yJ-LC^=5)X&aA>I=sSE{i?0Fu_g-&Up3a7$ZYH)=_LCZrw)ob0xjY)L?WJPqz*Sm!ss#BA%zIPf0Yiq08duHUyULs>vdWst z^`=?(<_xSLAnAUm&EJt~v^4CS#*`MU`y3j9(q0mDQw0^23@l2r;kLG)Vi)lArWPh1WxShW0a@FKmfPX|3CASC(P- z@xNc64|(>o%K>wszTDuEXP+w{h?>rZm$F`rvc=W^u~PzluK%9HMwKa=+~Jjtw*SJ5 zzn&!ZX~EZts*`Dg*jo!Vc~bLJ_eo#n0~5;L-sHz-UQ)(D>7T_Dr(R1j1`? zIAWHY=55V|yUKZ^8u#1$b6LT{4Qp~jwV>Y;w91Y3#`ZHbH|0R9`UnuX_3p?=Vjmwf zHF=y#z9e${HD_T=$(4+3weQ~pS(j5-$H-4Q=aSMQz$MT4DPKPAZ;VvPmpt Date: Sat, 21 Jun 2014 14:30:49 -0400 Subject: [PATCH 02/10] Balancing Tweaks the cooldown numbers, as well as the wavelength calculations. Anti-toxin, hyronalin, and arithrazine all reduce the effects of the radiation now. --- .../objects/items/devices/traitordevices.dm | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index d636bf50139..f7cc275d29b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -81,7 +81,7 @@ effective or pretty fucking useless. throw_speed = 3 throw_range = 7 m_amt = 400 - origin_tech = "magnets=2;biotech=3;syndicate=2" + origin_tech = "magnets=3;biotech=5;syndicate=3" var/intensity = 5 // how much damage the radiation does var/wavelength = 10 // time it takes for the radiation to kick in, in seconds var/used = 0 // is it cooling down? @@ -89,15 +89,18 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) if(!used) user.visible_message(text("[] has analyzed []'s vitals!", user, M)) - var/cooldown = max(100,((intensity*8)-(wavelength/2))*10) + var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) used = 1 icon_state = "health1" - handle_cooldown(cooldown) - spawn((wavelength+(intensity*2.5))*10) + handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength + spawn((wavelength+(intensity*4))*10) if(M) - if(intensity >= 5) - M.apply_effect(intensity/2, PARALYZE, 0) - M.apply_effect(intensity*10, IRRADIATE, 0) + if(M.reagents.get_reagent_amount("anti_toxin") >= 30 || M.reagents.get_reagent_amount("hyronalin") >= 20 || M.reagents.get_reagent_amount("arithrazine") >= 10) + M.apply_effect((intensity/2)*10, IRRADIATE) + else + if(intensity >= 5) + M.apply_effect(round(intensity/1.5), PARALYZE) + M.apply_effect(intensity*10, IRRADIATE) else user << "The radioactive microlaser is still recharging." @@ -112,10 +115,10 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/interact(mob/user as mob) usr.set_machine(src) - var/cooldown = max(10,((intensity*8)-(wavelength/2))) + var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) var/dat = {" Radiation Intensity: -- [intensity] ++
- Radiation Wavelength: -- [(wavelength+(intensity*2.5))] ++
+ Radiation Wavelength: -- [(wavelength+(intensity*4))] ++
Laser Cooldown: [cooldown] Seconds
"} From 5913913c45b49c10649e631245537528e5ee866e Mon Sep 17 00:00:00 2001 From: CollenN Date: Sat, 21 Jun 2014 15:26:16 -0400 Subject: [PATCH 03/10] Fixes scan message Now it uses the right color and punctuation --- code/game/objects/items/devices/traitordevices.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index f7cc275d29b..5747daa3c4b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -88,7 +88,7 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) if(!used) - user.visible_message(text("[] has analyzed []'s vitals!", user, M)) + user.visible_message(text("[] has analyzed []'s vitals.", user, M)) var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) used = 1 icon_state = "health1" From 36261f94c8cef198fbfbb135a7fd963ecc6dac8c Mon Sep 17 00:00:00 2001 From: CollenN Date: Sat, 21 Jun 2014 15:40:16 -0400 Subject: [PATCH 04/10] return 1 --- code/game/objects/items/devices/traitordevices.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 5747daa3c4b..137270d62ea 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -128,7 +128,7 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) From 734558f7cc9785d1ee1b20a3c96e275e7abd379a Mon Sep 17 00:00:00 2001 From: CollenN Date: Mon, 30 Jun 2014 17:01:29 -0400 Subject: [PATCH 05/10] Removes reagent check I've been somewhat busy recently. --- code/game/objects/items/devices/traitordevices.dm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 137270d62ea..e480569b5b4 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -95,12 +95,9 @@ effective or pretty fucking useless. handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength spawn((wavelength+(intensity*4))*10) if(M) - if(M.reagents.get_reagent_amount("anti_toxin") >= 30 || M.reagents.get_reagent_amount("hyronalin") >= 20 || M.reagents.get_reagent_amount("arithrazine") >= 10) - M.apply_effect((intensity/2)*10, IRRADIATE) - else - if(intensity >= 5) - M.apply_effect(round(intensity/1.5), PARALYZE) - M.apply_effect(intensity*10, IRRADIATE) + if(intensity >= 5) + M.apply_effect(round(intensity/1.5), PARALYZE) + M.apply_effect(intensity*10, IRRADIATE) else user << "The radioactive microlaser is still recharging." From ae0be09cbace77a9249139b6526f01a946a0ed45 Mon Sep 17 00:00:00 2001 From: CollenN Date: Sat, 5 Jul 2014 22:53:19 -0400 Subject: [PATCH 06/10] Stuff Stuff: The Commit: The Update --- code/game/objects/items/devices/traitordevices.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index e480569b5b4..44b8434aa2b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -88,6 +88,7 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) if(!used) + ..() user.visible_message(text("[] has analyzed []'s vitals.", user, M)) var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) used = 1 @@ -110,7 +111,7 @@ effective or pretty fucking useless. interact(user) /obj/item/device/rad_laser/interact(mob/user as mob) - usr.set_machine(src) + set_machine(src) var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) var/dat = {" @@ -127,7 +128,7 @@ effective or pretty fucking useless. if(..()) return 1 - usr.set_machine(src) + set_machine(src) if(href_list["radint"]) var/amount = text2num(href_list["radint"]) @@ -139,6 +140,6 @@ effective or pretty fucking useless. amount += wavelength wavelength = max(1,(min(120,amount))) - interact(usr) + updateUsrDialog() add_fingerprint(usr) return \ No newline at end of file From 92cd196731d57c394e8d38206209e950fe1b61d7 Mon Sep 17 00:00:00 2001 From: CollenN Date: Sun, 6 Jul 2014 08:54:07 -0400 Subject: [PATCH 07/10] Stuff 2 --- code/game/objects/items/devices/traitordevices.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 44b8434aa2b..1fd611703db 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -111,7 +111,7 @@ effective or pretty fucking useless. interact(user) /obj/item/device/rad_laser/interact(mob/user as mob) - set_machine(src) + user.set_machine(src) var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) var/dat = {" @@ -128,7 +128,7 @@ effective or pretty fucking useless. if(..()) return 1 - set_machine(src) + usr.set_machine(src) if(href_list["radint"]) var/amount = text2num(href_list["radint"]) From 7b90557deaed6a60feda089d00e9b6e633cd5783 Mon Sep 17 00:00:00 2001 From: CollenN Date: Mon, 7 Jul 2014 13:46:59 -0400 Subject: [PATCH 08/10] ..() --- code/game/objects/items/devices/traitordevices.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 1fd611703db..eb5a33d17d3 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -108,6 +108,7 @@ effective or pretty fucking useless. icon_state = "health" /obj/item/device/rad_laser/attack_self(mob/user as mob) + ..() interact(user) /obj/item/device/rad_laser/interact(mob/user as mob) @@ -125,7 +126,7 @@ effective or pretty fucking useless. popup.open() /obj/item/device/rad_laser/Topic(href, href_list) - if(..()) + if(!usr.canUseTopic(src)) return 1 usr.set_machine(src) From 40548613e43bc5841e51073fa30fa257d63c29e1 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Mon, 28 Jul 2014 17:13:33 -0700 Subject: [PATCH 09/10] Make deleted sleepers kick the occupant out properly Fixes #4244 Also changes sleeper/ex_act() a tiny bit because it bothered me while I had the file open. --- code/game/machinery/Sleeper.dm | 11 +++-------- code/game/machinery/machinery.dm | 2 ++ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 31a6bcab760..83c900bee2f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -87,21 +87,21 @@ if(1.0) for(var/atom/movable/A in src) A.loc = loc - ex_act(severity) + A.ex_act(severity) qdel(src) return if(2.0) if(prob(50)) for(var/atom/movable/A in src) A.loc = loc - ex_act(severity) + A.ex_act(severity) qdel(src) return if(3.0) if(prob(25)) for(var/atom/movable/A in src) A.loc = loc - ex_act(severity) + A.ex_act(severity) qdel(src) @@ -131,11 +131,6 @@ ..() open_machine() -/obj/machinery/sleeper/Destroy() - var/turf/T = loc - T.contents += contents - ..() - /obj/machinery/sleeper/attack_hand(mob/user) if(..()) return diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 2f5cb7d54b6..f5612c6aef8 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -116,6 +116,8 @@ Class Procs: /obj/machinery/Destroy() machines.Remove(src) + if(occupant) + open_machine() ..() /obj/machinery/process()//If you dont use process or power why are you here From 056289a273de82a7254de96f66a397571b62ee07 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 29 Jul 2014 09:12:01 -0700 Subject: [PATCH 10/10] fixed moving between adjacent tables --- code/game/objects/structures/tables_racks.dm | 8 +++++--- config/admins.txt | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 79ccd28eec3..b22febb5900 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -521,6 +521,8 @@ if(istype(mover) && mover.checkpass(PASSTABLE)) return 1 + if(locate(/obj/structure/table) in get_turf(mover)) + return 1 else return 0 @@ -559,16 +561,16 @@ if (istype(I, /obj/item/weapon/wrench)) table_destroy(2, user) return - + if (istype(I, /obj/item/weapon/storage/bag/tray)) var/obj/item/weapon/storage/bag/tray/T = I if(T.contents.len > 0) // If the tray isn't empty var/list/obj/item/oldContents = T.contents.Copy() T.quick_empty() - + for(var/obj/item/C in oldContents) C.loc = src.loc - + user.visible_message("[user] empties [I] on [src].") return // If the tray IS empty, continue on (tray will be placed on the table like other items) diff --git a/config/admins.txt b/config/admins.txt index c367783a872..e8a1826da82 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -59,4 +59,5 @@ hornygranny = Game Master yota = Game Master firecage = Game Master donkieyo = Game Master -argoneus = Game Master \ No newline at end of file +argoneus = Game Master +paprka = Game Master \ No newline at end of file