From 7e831c5fa2b369d3e4c4d46502300eefa3252d50 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sun, 16 Oct 2016 17:24:26 -0500 Subject: [PATCH 01/15] Adds sloths --- .../living/simple_animal/friendly/sloth.dm | 41 ++++++++++++++++++ icons/mob/pets.dmi | Bin 46366 -> 56480 bytes tgstation.dme | 1 + 3 files changed, 42 insertions(+) create mode 100644 code/modules/mob/living/simple_animal/friendly/sloth.dm diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm new file mode 100644 index 00000000000..2953a7cc914 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -0,0 +1,41 @@ +/mob/living/simple_animal/sloth + name = "sloth" + desc = "An adorable, sleepy creature." + icon = 'icons/mob/pets.dmi' + icon_state = "sloth" + icon_living = "sloth" + icon_dead = "sloth_dead" + speak_emote = list("yawns") + emote_hear = list("snores.","yawns.") + emote_see = list("dozes off.", "looks around sleepily.") + speak_chance = 1 + turns_per_move = 5 + butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 3) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "kicks" + gold_core_spawnable = 2 + melee_damage_lower = 18 + melee_damage_upper = 18 + health = 50 + maxHealth = 50 + speed = 2 + + +//Cargo Sloth +/mob/living/simple_animal/sloth/paperwork + name = "Paperwork" + desc = "Cargo's pet sloth. About as useful as the rest of the techs." + gold_core_spawnable = 0 + +//Cargo Sloth 2 + +/mob/living/simple_animal/sloth/citrus + name = "Citrus" + desc = "Cargo's pet sloth. She's dressed in a horrible sweater." + icon_state = "cool_sloth" + icon_living = "cool_sloth" + icon_dead = "cool_sloth_dead" + gender = FEMALE + butcher_results = list(/obj/item/toy/spinningtoy = 1) + gold_core_spawnable = 0 \ No newline at end of file diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi index 645ad969dcd349fdcb77e258289d29eacaa03ab5..944f9d7f91801436e8ba674bebb64eb6658e4084 100644 GIT binary patch literal 56480 zcmdSAWl$Z_^EP;KO>iy*cXxO9;O-KFy99T42<{#rcyM?IdHPI*l7iF+#7~GI5a@%9w73cg1hEMm-SDu$8Bh1NLg1eZ zPc)`;BENzT}UpW z!BjqTFf~n$RC@$Y(Qe{9=esm=VO$^L@ zt-63Evs-YjyLn+RALe|H@DdU>(jDAc7|b}r@#nl#is(TxA{^}bbF?b!qLChXjDKkX zCXe`f5uX!PgDOlDQauti=4aF1-oGHW8bS2Btn zfVjl>t#y#G9rsszJ)L;te$MTmVm=a!(Lq@HY<%ADM`b=DWhm42D8a0W$TZ9v2*jTx=t`yILsPA+(O@82N--m0m;`R|%WfDwkY0$VX-|+C1Z5t4+_;})vF@ULqKfzD8$4*H-2PPPy{aF?S#1bhDF@d-R z3;89KTUZ!@&?y6TR;U2M;W;A8P`J~YDOAtv8x`N>zCiB)r6#!-%Hyg8XIQ+Sgz`rm zOuM$UFzU&PD0=)Z{xs4kg&INnC}<@7>DlFe2M+>NSp8b=E*!pR+;HAx$Nîqph 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%0A+&O50hMNK$#EDGxihVD^zFBb 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 M;Rx*_O`G6<0fIJIVE_OC literal 46366 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 diff --git a/tgstation.dme b/tgstation.dme index 4c73fc92250..be489e49b10 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1479,6 +1479,7 @@ #include "code\modules\mob\living\simple_animal\friendly\lizard.dm" #include "code\modules\mob\living\simple_animal\friendly\mouse.dm" #include "code\modules\mob\living\simple_animal\friendly\pet.dm" +#include "code\modules\mob\living\simple_animal\friendly\sloth.dm" #include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" #include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm" #include "code\modules\mob\living\simple_animal\friendly\drone\extra_drone_types.dm" From a8e3bd75878c418c51b62daeee2855cf78fbc496 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sun, 16 Oct 2016 17:36:31 -0500 Subject: [PATCH 02/15] Adds sloths to maps --- _maps/map_files/MetaStation/MetaStation.dmm | 10 ++++------ _maps/map_files/TgStation/tgstation.2.1.3.dmm | 9 +++------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 138f1dd17f3..e65ebe1e6a6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -90621,11 +90621,9 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) "cZw" = ( -/turf/closed/wall/shuttle{ - icon_state = "swall_s9"; - dir = 2 - }, -/area/shuttle/transport) +/mob/living/simple_animal/sloth/citrus, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "cZx" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plasteel/bot, @@ -111412,7 +111410,7 @@ aNp aNp aLI aNp -aNp +cZw aYC bal bbN diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 4146891a1c3..81634727e58 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -5756,12 +5756,9 @@ /turf/open/floor/plasteel/black, /area/shuttle/labor) "ama" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Waste to Filtering"; - on = 1 - }, +/mob/living/simple_animal/sloth/paperwork, /turf/open/floor/plasteel, -/area/atmos) +/area/quartermaster/storage) "amb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber{ dir = 4; @@ -81130,7 +81127,7 @@ bgy aZE bjr bjr -bjr +ama bmh bjr bjr From 113b07aa8a71852a1bba6b958f80781814cc5a1f Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Sun, 16 Oct 2016 17:57:10 -0500 Subject: [PATCH 03/15] Fixes sloth direction --- icons/mob/pets.dmi | Bin 56480 -> 57414 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi index 944f9d7f91801436e8ba674bebb64eb6658e4084..e852426e62d81144f285f21664624d664855bf85 100644 GIT binary patch delta 17455 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 delta 16513 zcma)jWl&r}(=Hy|J-9o;T>=4uy99T4_k+8;yN2K%g1dWg_u%eum-qc{-MUrx$DOL( zb9QTHws)qxPxsT$40J)}wL;dEX932hGYA$z_)>?2#l1{n6#-V@^uGgI+Nz$EBPt@1 zuojw_=&HzOpmgHMussndZ{#5IDT?GqWLVQFW+%>L9YjRFQ!=DHdl2OeueRQI9IQHV zZ+NXcO?Xj#7x20((rI($aCI?Xs3HV?GVTe2n`!m`T$HuS;3#ib@Ge101T0+3D>r0H zd$+3~DL3u2gvZ69J^`2_XGgNTyQU7dn=s}1N4A#uYSp?ruYPMP2lw~~dgL6Yq<@V% z&wfNUDk~`|omUaTn0ZDYi-?Fk*k0yl8rQRUH$P0y7tFb{aL*pgx+$9md&ZCIF}+*9 z#Ey1`NE8x1%U=3*?Ojz@0EDkRsesOrt@YzOGv`ZrUxxU+V zzBWPSG`22$u8wZr@YT9nwzK}78PM7JzSmqjlbH5OrSja)Z|u0I(Kk~p9oz|ApCM_U z`U)*gvUk7;ms~bl-dSaB2vfA*us^HLs%ZVb z_4G;9>)E|Z9eo#10XXm#-emJF9~b6h-m*qJtDL!7Uot)Rom8uM5uQrFsU813zJ22L zif1z&i*rm6kMQfnyqGmU!`G7Iz&gjgylRUvcq2)}W9w-7=aZRm7Lt&WF`};L6TFl+ zFsL4jBJ6NGY`PElQImp|$U50C=#2BBbw6X<#XJ?w_?9<5X;m)>{_&KpCy9)Ruw0uj zEGrA^>gvK@7)xUjEx18aL~llgoQgo4*0wEEbMQ2P4a*O*IAj(SwuyZD__dj&E4zvG zX2-|(rqPY#X>;>Ou6am^`P@PrJH97r+V_x>Ho*y`Re(fi^3<-lQmgszlaaf7i~IeW zn}5jQ)Qvd0g&dBv^4YPEme0TP(kdQCr-KPBe}Df~=UIIiCk0Z0!K5&1vV>9t3C%`bbWk? z6nu0H02`P5Mmp87vK)??zXa~r)FwnE<4b2h@9$DP<{RF828>hQ-Pp_~vMgq#HRcb} za&l<#HQ#D$6_w^4t$wZj9NJ?}?bLqbDtW2qa)Gajii#Su^QToVp#cj*{hm;ojV%)9 zalOA*Q;A~Y`#J;xk{Q&TAkD8>DeyiTfR|oEj_@%KG!jV|TmL`brhgXBeg+>M8d~K} z8PjB-8=;?iGB2m8CZS?TiI|o)YoB0d^v<&Hu8i;ZPBeLOvU@blm?oZDD27dyn>I*}YUAA0o z+zvF?rGVPw$_NkrxA(u0M;o5{jXSKYtU|=TcM#sk*FfCgjwbQdrx#-U7wnBBE8nWS z;~h`Upto3r{tbu~{YBn4`qQe0%K0dxY83w_=g1g-us}!eF zwY-t@w{$8K*2n95e;i}IQ>*`|zr*LbuhClW6ssX5XJd8St?+cA{}wY(FQUa`Hu1%x zu4Vc1b8?j_$-t5GbcMQ}EwMny-$bhR%c02v0%K!ie2G9PVDU5j7%HkL!h5p1z~E;O zX#TCvKc5XcpPu+9vUo%l6%`ZR$kOj`1`QRO^N}2ns(fssap!DkRyJ1Ft&z^7oAihm zr2VR>>V|WvB6AZT)b`Ha?h6(x9w-rPIjB0>iZzOr95<(YuUH+!qr#!OHtovz&E9S% z`(BQ6!@u}&11W|Gn+|%_S@j}NR!nxe&Ch`Xof!vYL1t*E-Dj_l*%EQ z^Ww>Zo1QWrUi!f71Iwl#sk(r+OC;TS$>REWO?y&O5_>t$FC{N3E4?8h^$J)jpEwHi zZ9c%zi5(D~#eF^s##zd2I>2fXB4JC_=OtCr=7EC^ur7d z#szF8#wLGEP3^ok^ZW0JO^`iE^2ynmEnHG8H=p^LWQ(oN+^a=IM7VoY zXLpMVwpQI$54t~s79NgRk1?M#zh&Om7WnrC7pz!Q()c?javNm*Qq<^aNgjLdL?!z4 z^I@ym15}nAwQFkNEA23*HjVKETQA^Bgn*a6!5fXe$#Vai`SS9DKNzW6n=GJLF|XN5 zn4}(rLclFNUpZm9GZ!%1$f;t{YF14bV5O%;?l|hm?Ro^eX6U8gl>Rxh5@t!B8TfAY z{%9N^Dr(tyj%~XvLB+oGmhdA|Oh$u2^fwBniNR0Y`&IX&1j@j^iz*k+?QvS+z)){8 z-F2%{kVDpbT8{wz&j!0Sf1Sa^MF&r>=shOYA0SKoj(9#oDGjre^O?DrK?dt%E-Hqm z<%INOu?`;M%+@4Mhf^A-MQ*_Ll4c+vVZ>X9xouoPR}i$zWMimu8p61AdLN@o&AjE4 zXyB$kJMa<&;ffB^4^jRWV+a2VuChpnyJp9p%7DkcD#wIn`sFd3cIK3Mohq_AYHTtN zCKg94xiF5z^dIG4Zr`966fa{aQ>D`94A$olT)c4 zRFR;%xpZIa;{F*dCX1&puM^4AxllRRCv-NZ-?U^*xBb&$qum_zraf?2 zCW7U$LqVg(i-{2N@PS77xO)PluW*A*M8#tUg|gaw*856V;~aW_{u%c2eeV0{>1fXO zIrdkza!V#c=ev<+Nt}1UW&feo2+`V$&Bk!KK+!@`(lQPTxvh|=UOjq`SdhNs z+1qok6Lj|+>2f{#a`n(S*XarA&=4^jNpos2fs>g84e%S(T9wJyoGPoY1Q3|Qb zN(utxrU7b3&|~3S=r@c*oUo?V!TN4b+t&q8=);n{Ogzw{d?gHtW2Z>;XCAYO12cIN zQNg2Vzk-s7`IfI#u0WT3GPdI1YhkDG^!oY=#}b-0GtTs^(rX4y@rsHq^; zT1-G(h=P%uu5obtVaY~M(fvox=%_@(l0R4gxaM<6lIKuG?WYSyR^FwY~|rD@yUG8~)yHaMJP6MtP-h?e8^M*}c(qJ;PJVVo6b_ z<4Y%ONlDmTt@l4tU*ED}@|1o${N@MR;oD}f%M~ra6e{Mt+w72jQ2yY57zrF#f}1eT z+WMPmyK_#?u3cT-xmYF7QXo~L&`Ryqz-PkH5?E0yBq{xVi&T5oWypM zzuVm7YSp(&rJd?aYSur{J}Y--)BDhflDHvDmg1FaiH@Amey`Mbib_fWKa&qSufnAV zd0gHoBqj;=hGTQAn+9k+`eguc1xs}{?~`84gBGVnVE#-@x~Pt z-h)o{bdt9ggEiAax+1%r%FcwF34!ZL2S4J*-w{JNG;( z{#7@{JOWm4yhE*`U(M3!?LN0)+7dOvOeqD5q-)PPU!@$?mh0=2{);nj%D5)gS-Q(4 zhbov}c4^x`*EUIB^=9C~vsDdTlhvv=&G-JgEZLHiXr=2nLN{hI=JsrNDy|`HY}BU0 zQ@7{r8P*olX`9NZw5Ud-ezLpCj8)H(v;9TS*D*D=l^9#fG82V%&Qwse=-F^0Cgn*d z!Au~YKoKDYuUNr;!rcy;{kM6&fqlLMr~1CflG#KfcdO_ZpDJL(u+F`UQEPK-@pJ9z zvmxzBp&m8#hA(gz6&DwWDK)_VVp`7?veI$GJ`}N8)q)W7Vc;><`OTcmVdoF_Nac-L%4uM0yITpO3A*7^0cIeFHr|NSL zVMF=^X6>H)ecOfhw^yS1Z|n$`GTl3=b^ynGid6hYl_dliVEJgN3mm^y(AUU*e`(o4buBt0>0>Us z;%Y21TsWc-=NBj#M(GfI*1hR~p(DU5OQM5^zs6g3fx<7&xDE9+?)kMm*mi6LirKgC z1a~x&|I`89wca0__U5@Vo7I-2Mk_2XL~fZJqHhGtTgfa$^w{zDxe^o{zEmBXTVt7E zYFr5ztruelp*mYEMXOC$J}&%o!#|O;wI)jW)BcU0=Y%#sIrYbHc8_qODVlB#kY3@g zSuse=B0FsN&?Z?z6B_XuT-?gMNz2LZ*K%3m0G(EidK`o-Umc=O*{~}+QJ&?__7p}) z*H?^x@|Oyt>4IX3DSE`k5ors;*^pgjFFd|OloNj4SCf-W^$s*J#dt*;ZFmA#>eu%f zc};$w+UJ6`s3MNYj_fq@AAVPW8o_}ZdJh?QhAriW0D&%-WVsI* zw7;3do0(<4yjbg$NWeT<1p@p9(7#V|Po9Zd&|pqclfqVNeyw(>=FlQgc6*z#+&#zwr9;x)Ho8a9e3wTWhx`gN8~Vt?z6W^);SgxgM*qIx_Oe0_utWNT8}@ zQ8t}b?CD`A_MLhsZh`Mzo%Omrw0{i%{t&=YSu7ASnV7OZuT5509P0ge|3z*meqNp5 zw=Y~Ahl>92^fR6U&Po#cjh90$GcX5DP+Q~o+wb{K;N(RKH=0-T8$M5Rg6M)=d={_K z_T#!6=dySugtkj%^|a;4~6TZa(Uk=zNwy-|`t&Z#)W5ygnkp7L#3Kjb;PcLWm>13NUbQ)>Dk> zQXOKjh*2r-bYFZM@hUmYJHG2y!p=>2E(E;!N*8}q&6>&+ zPDntR>QN9^ERURvG#w$lcwQ&H`BUhD-{rIMhXno8da#~8LX+*%_juY=#ljGORD!ij z$^~8+clXHn^Y2fIApo05>xW!-_Ct$ z062qVDXSM+K|Vk$Qa5T^hC{kA5iS+>)Df!zsvbKN4sv}p8tkxSt*segaqX`aT+dfU z%p=`hZQep8ax=ZwzO`7sRvhMh4`=baBkUcTsL89YNx0oOO$Kgbg`&DPD@tnSVmft2 zx8q+Iir?CujEl|D@VZ*rpbtj~G2y8-i5Xob?UgrDqEv3JlCm{*ranNQKWH^KCRTXY z7wU+3T%R(>VH9+tj>(*urcnGMvEmVb?KMoAjp67{L&jb#(VxuY6P$0T!*A8eO49+c zrIg3Idel8pz!s9U9>(cs$Y}G1oXZU*E!rRHKaxAEGp?gyS>{d{xkBKbJPNDRxsL^h z>4h0Z4Fw>Q+jb(lapUrR$(H88 zc0~tRBfM4b<&9A?voJv5iXv^wSmlPeGMY#%@WW_r<9T+YGL83a^54ClhdO(a+c~zq zQ>uOw;qbwF=BEU^a{cS3(^ZZlXdQ_cye(G;=W7Y;^(I2Uv^4h#oEAym4B3@|SDaso z3#M`aw!@a->fN9Ox9dNKy}d!6L{I!^O)>EjxccI>E;Uh&m$$@iLtBr;0Wg$GPu=h6 zeH1bKnW`I8)zbWo%eRzll;N9)F;Gvuhuqt`tjdXs-)%h`Lv>Ff)9xn^g5=1DY7X({ zm|=>ciaF_@V~XmiXhVq#S^E)~$M+kXGnmwX_sAFZy*-OqP#8Eq)D0O&QS-xb`gN|v zRraJS-l+6&UeHhefS>e4j!W6h*I6fMk+BQ(sPukmC>zN#Hq)5$ZHv$R9XfS8zm$5s zv2O$Ru*M7F|4qr8O!M8FJyf1UnpbzR=^ITFe8`>EXl=IHbgMS5TnT!Cn!)L6ytWs> zBk9FtKNm+%p!Rw86Z_cnj|#Bnh*>??(nZ-15Y^9&@QZNn#w6Ke{gaq!sK;-1W7u1m zP4|ae$pm!`f8NiY(Q1J#Q(?4&efwF_LE=Gbzrz>WJLFVoMwgroecCPBu%GcOVVYN> z*KDdW4Xb^K8<_)2JPOq&evsM{bH@Oxk{oMIZ9EM z2%Fm$?;KtD;2EK;v&1BmEPQbUQ*S9cep{-1YSqqWE#`7V%)y#^&Tb{}mdL62*0L&l zKW3|WlQl%=XmByRsd7lm4A2+;TKpDy=)QV(w`*FQnCt=*k;#weQYc}1P zgC;SNd^ve9XsyydS4C*jirK9<(}qOnTf|) z{(oLxO?oT<$7yB*Ffd<1--mzROJ1(bkQlaPH&vN!yjQp*&>2tD75CNnA`ABNmj6V(P4Jz= zX);I>AXyE9c|^m&lhX7=mVB0XaC;V1S&U$5I{emMocI7OUZ6(1RC5i6pB$kTaz`?% zGIlxVj7%&qR;cvF@;h)P>#>WicCod34|k=`@?w_p?xvSPCW2^rMkJJS-tnG))iS>Q zvSwaoo z$w&LgyEYE;mP)yz8u!qPC!hSPP|5m}na&NN&zmRCCmUqC8*qg=Zg5?$cb@pwCVH55 zX2x5(qFXPXlKbLcEdgIm*$6E?-Yl&C>f=uZt{Q$`K5s^KU77OC1vtQwQBZIc6;p%N zfwrxxQ6V+V%~e61c@lYrKs+|nmr1iVog*rkN!%~OZ9^c$HIT=5i$*xHzqf$l-I#@h^OU9H=Vsf4!a+2L-ju%_V;jhokrHh1E?1L`i zIe!9@osIEsJvsNQFFf8I;#jLGVn+x)a|IT0Vzt$i4jUG;>}%-Mzs52GI`zmn>;uvU)!Eo3jhosh!626Ui zVA$-4{OIr`rz;NndOq0=Ic(l2fyeho>TF3JsxHKgKLh(=5*OEsd5V$*oeEKMrGvKh zX!ypPCrfP3GAFVgV$d*!{!RzXenqDDP3K2*<)4fOR!9CKSq<^j1JKcGqv6s4adE<$ zpHgaU-<-%whla@~|2WOF|G5~WxICE!dYz9bN_v!dT~CLFNyu0FhU@V_>CN8NFa&pd z=#4cSa%kdI9;n__RFp$iYXl)7@1f>xz3c(@oML?T#{@Os-}ewQAno~1s1IZEkIJ!A z3)ip)J?#{J#xU{X%Kf!wT^PbNg35 zd(O}%gN`Vq<50P^is@VCvN@5*5JKalo5fRCDH-el%JTICpwsf+)!Bxu)~d0Li#U&l zqHN+okG9Jtg4vG~mkxgD#aKJgjFpS}13$NwBIv7?mIyjgB>c8d4* z_8>D|EiD94Q1FVmQ8hE*l+K6iR+p-mt`qQhrEP9*T4CqWJ8%;wwT=!?j2oV(udNE5 zkOsJr8mBRumHI%fv=r%kYBXMt>4TGxifu2 zy5U5@A3U#F{}^3*V0j=uU5_VwR9i809CW5)s5WJRpl$tK1oH3ihv>Dj67?@f)!e>! zxByT85>f_~+p}o1bOrV=^vfTWCu~G%<(#Q$!wjuO);Jj?SCQ9i!i`c}I%ersbh|M^ zf?YUz-r})M;MUvz=5^%9)+_W~Fi_5V6) zDE+Hvz8dIar{l?qMB$S`G^(?~31_z0VnQcbP}#8|@vr=74@|~b@tzK!eA*g}HZGlLlJSXf56V#x7ETP7l@rUQ zz3q(Od|m@->#_ZIEmqj+;5zGr(+Y02mo;V5MJ2-@zdUWY^wKcd-zo7HNaL!$a+ip( zv9Q#7w|m2RAr~td(;7S$ynngu2Dk+u7b;v#+9sadBqsHrqH-C>AFiHZ7CO}>1Ww8U z#u%>JH!L-;w|42%21}jyYr6`Reox-$9vH!QO9B1BZea%pmSrS2mhE;WPC?y?uvqWK z2QHyWxaCb=;_X|CAyk<(76K-Zj!^ubFIWfQ`fkh9&;N!Q#wf;ceRZI?0Z@nF*`4*j zKO2+5xk0Hl*5CwjznY?WjbPaiGK2Blw{&->M{95I#$D|FnQ|90FdU{FiF}2c%L~uC zh`O4TR8%_)mvIPZ%Kj$9tFczhbOid?)*y_w^Hc_V4^xp+dBn-wpSglKnQPwcdB{yXR28 zX*?^OeRdMsMB6}m1}NCck|yGHXqtX}InY#SP>EAa0vGP!L1~l%<%@;mrtj33lzhyY zA3Yf;qU?>JURO{kSO)6Pc<2~1h)%r{>@I)lX*alh4b1hLlLzDiK(&p%;Vt>P$3=0u zmuF0@zm7^wMeGlP_N@nk_sIZ)ADj=BCej;B=VYRgvMyuY!qS+MrmOm9Awrit@mPF) z@I2LZnJPN?o28odqrz8IvT2RQ0q`wkjQ9<}9oe9)t^q?q?&cLvb$=l#i_n;eb|;h~{hzljIc`tDHq zav4I=cdSKFXj?DWC2j>i)l@HzgG%6E4qvA~M;*REawmGiSBm@h(q3Gb^IcWZ?lc^* z-J_eBsClBa;V3WrzBp^LIw8bSz!6vC7b}TXm4mfc1L)bY@Yw)Z0tFh**=Rq(XMBdf zAj?|Smf=Z$srY%ZIO2yO=dxzx^|BY>dV`XpiFMOnWb_c$n_Vg_l5FbCa5DUwrXhe6 z%XXxRi24epayq4z<`ZxKXV?hhzTYlZv=#Q3<3OtYyJ#${`;dn=6OL_jB4s2_VzOT6 zr?UkG;Ju)rfhG$HcuR)J%FLwC=5>)WHZ|RL^Thc4&Pj0kK&bNT!KWSN3%2)`{ftyO#Bj}Yz!;q{nfOs7;1HYu1h7OASxOA-Dxt>40mdYl!) zfQ2iy*LPF1=iEW0@*>LCqI7&&Wr^wlC!iGsWURlPa3I9toFfRQk!E>25j_ZtE5dvg z{F>&(h`GX0bWlW&T6CaWUKTTq3vtxCy!>)7yX_fo7`BeUdIm@tcey2w2$rC6n2@uCx+auY>{EDX>o7S0 zUL=>L*vKeykjlzkX2V6Gm>O4a)b56gfpTfb_svjPmLLU9#R$#vl7>H+g`H@T^F6Pk zMBCRm2a%zARe*-!%HP2vP<0zEMPDG?LFYpCnA?jb`L2==6&+PXe5)U3&uDl>`rB5p z2#gyZSx6%ulV`)Zzf|$v^TTH7%skN7Jo&I>G~D_O28K`eK_*a2T_ra>zRSLmvhIIH z;qO^M*x1?ODv6+-6~OTLg#{1sV(^mpJwl4WntSuHbFsbBpQQaDxFK(GV$^OjwTsQk z&3IBD{b?=Oo(Gg(6H`+5-&j?*S!M`%JzKDt-q5Hd^o3o9XDzp9WwG(m0*v+KwDUnw zq6WIWqMwjVcLt&#%2b0sJtd^u^;=FD+>~v3-@nGDG05>YBNw<;>jqiXg`0a}l%m)f z4FxSz3ky6fEEK29%c2vm^ler!m2TwKTEE`0^+eHmHqF+*JEK_^2lXCxQJ&CH;tKtw z_KG#bnEs7Z?$udf7D_|p4*dIfZ79x>H)i|o4QG`{&U_C43In3dzQv&h>VSDKKd$S{ z-k?@(igZoM;|))U!>rkChEyT6aqPNI&)t`A&vkO6+-&l?dxe?JFv<+k{c>B(dZ`1Y z*?!>&=B@H?r{)59=S2^K;cVa$;yc-$BMR=2K>JZhYaYh704X!qIk544QZ6S<%Z40% z%EIMDFsE;`N>p-Oj+Br2IHO1LuL-a)oXwpr_u}%_5MwF35(X7xNZH%6&=*L#Ae2a>GyFQJDZ;Lw4a^(85@4f!X3(@vP#(P+r45NpG;J)*z3Yxb&t zPd*77HAd;|y!94twQ1+7?nH<3u=V0QIl0$s4AH5llBRA%E>KNeyjNVL%`Y2A8dg?g z{`PwM%>K=<-Mu+bJNpJHaozn}-LLwvmLd0;5~3mwUFyRT>w-w5?qdH$X!31?$5dFe19(Uc~id*LVrD?)O7zawng6aCY zcnSkZ0s#q%(utRcpOgE|8t;}^`hIGX{KLuxFcKjpT_gi^1*k!Hu{^$wK8Bz(kD|1CRJ7K4Dsl4xHdXh@cYSiCAjFBew;n`1u8+kVg|_PRhH4g;fLKVF#s`5EiV7L>nM1CaT8!rNnsZWE zo&Y)LhSCX@SK@uqZA30kHLM!e=2V!%lPgiz`c7LIR}&SvP+(M6B>!c1ZgnfuoN4Dz z04!8Ii1pVFESRSFfD`F6{{}_%<{K#rI1!h#5fpA2%gT>hb<*vZ9S^UyEEoywYg?)< zoD+2;)}`bReY?tLtkH~wLqI5$-^f%5gU9w3LwdlQH zv^H^$RIjzwV_|N;JjcJ6)MZiD9s%f$PTB#31-EyD^I`8fI%xUHpB*{3y*#shesVB# zmPnZ>8Da2h=tR4*oh*Jufk!evXLTAAo_A3M+QUq#=_?6G2C7+<=$9*kf*_2M^1BUTRD#?%hqhEsBi%a-&tx#pig zUu|vLxH5gR2T-(PkZ|NEiWATyYPrX<#^osKXz+_gB>gM><{B_TyuL7Y5D6)vd&5t9 zt9;Xe^s?_;U%nED@6~*AnTnJl*>)I0_@}O7dxHzE|FD&cxQOBbrCBAK8mv4O8W8hv z-`bT9J2V|VB0fnj}8i*{2l*_sL{aMfMhwiwqfdlCqulz}5kKyEE>%5wXr(Eyq z!0p!AaZ1Yh8>s$!An$Eja5FR-`yE7)q2VybQ_a1sFUA&J;+A%*T^gA-Z^&A|#zGO` zPmghUL#j&$VR;X0hqY1oJP~#9pJ+>CFh1kRH@i=oFU;c$G4COBQ8)RBKNA%m&XPi< zj_T}Wl~1_MKO~{Bc8}1TlYF* z0l~=S!1jd0&e6PJ9N%DcHRgsq4pZ-51BPRrUpT$G3h{rBQ>2o&elJa2O=={DNUR15_Zh0MT%Z zA=<*z;xv-rRU0=6qW88^sUb1w(6?R@!H>&mD-`dv!oVcix zWt)iCo25Dala>0! z`wg$yxdvyoN=;dNXNdyMZ|G>Vx~zJus^s!qyzjnfYjm+5UY(@kj4(m~l3UE@*a=ke zQMuk0dqXxYluV5pW1jc>E1)PY5xUIRQStqD)MO^NL$@zc@8z@3J;{m9ZG#oocp=Ja zZ}!eWy-BYoS%CLH?~=~OC-qW((iwTB+eJ{}GXs<9 z^1u}M;NKpuH-pviF#_c?d)y#ClcCD_#*PZFB=4WXWsS|Bsp^sWKA~GmEf0c6TAt0P zkrNVwO-5Sy?ZoFGc4q%(U;g5V%?V$9>NMnFfiwM5otsnRc3_yzNb{{yMdC- z4E<5*eAV)Ti1qEX(@7l6uW++9zFPoBe{a7U9QFpGr1fe8^Vw5R zKoFmJd7!~;Aw3)F@lzn`>hb|6d?dnRd~-J68+(=FPM2tje@q>fGuG&}(Z0x^>{22(>eG!woTW>-FVl!^JhI6#`zgIa1HW_$mMJmqrA$ml88yregxkWVeMh{ z1@*ID9mONbN!uLR(dBl!d(lgVWR|Z#wh9 z0dt=qP>C?XyIQl@&pHNd=uvy1l)<@B#J! zszk}4kPxXJ1B^&PZ!|A4XdTVtOrOGl<9<7V_r^=BUqCVhzsU$Dv>z&jmrcG?@>qbnw0+Y@q>zD#d{Cfp^AnewoXgNfjIB+t>7=)o?V@s#^5QSPmeY; zHIf=22L4AIk6`Hf?;RJ|4?hsoAJlBY>cBvU1VC*S?7u@kruaXn4C0_Q#6Q|T49WlF zh=Je7guus~|Nk>8%-{7s1|5r-(PwHzZ?i(ZNWF*`vU5696fn)$rgBiWJ9?r&c7Ut8#^>WQ8OW5Tk zTIHfxp*IcfbEpN=gU4|MF@@ITT3)OaR?4+!q;91&+3Dh)G=!NW0bAEZG539Cl*qPs z?v5+3nJNM8kul@Dwp_jXn$iE9pcs1LET4uH{PX0Iuk<}=@Sfy()j&!X=O}G4I++SX z4j@L*xnbHr(Io>TVDg`(d>Gt(E=CQUX$OVlO@tHV->V0#8!_-VNB!jdZ!7~IPW5<{ zPk0rBhPB20IzxKUKLxf0qZukdd}p@NqEL~7Yn*X9X4;}-N`k6aw=&kwRH#$BQ_$6w zGOi%fh-Bpki7|cJw1A%-^T8OQXovwyXoNmPA+~tX?7vtau0(fM=Q8UOa!8)({AbD7 zGc1j|Le&JA!3@zQuE&4cftgQNF+buB4%cKjRA3S?CxnHgkWvW-F|}(=H|cy~K6_C* zWDh`$%=!B2In(Hb4zbU3b zU14sIB}2qw<;dL~4pIwj+Vp?l*s7+d?1-V;CI=u^q`yS%G?*{o_}QuXh{|jqT0UCA zGRu3Zyu7AM8t!g__w^4bnGTCRNm{zWJS0X2#%Bkn*FQ_MI2~^vuV1HrsQ06bV&SJO zGl!Xhg9Xm^d zo0VLaq}fJ1CJ1-R0WMY7J+8&xULJO=HTiWAJI|vvy`nO)<#7Pt7sYj-V@h356VB@P z7dKGNJKydeinlR(Z?T-MY~FHY%{Hq0E5)gtXt~N}h4O3@Ac`wkR2;q zf*yi$5*}ME5TSeJ;bWs}ckjD$;{w?yYhnCn$d) z$EY9)uPw(1pT9ZN4>3Z?Wy16okn2eQTZ;y&!TQ^?=`ZRqXz}KrH7@$z7t@mUY>y?_{$HwK@YnG}1tBOF_EQozK-X1UDa z19x|MqF`wPC}bUg|LF0HXL(l8Z4W5zt(Sj~4v?m1!AhB_wUU0(H0IqEyaU z1acfRv%|1SA1oWbH6nh?kE5I2wdeNuVuCjEI+*^&m87IVNd~V}@^I#(egdkZa5`+M z`=EBbb>|3Cz)2=dm0>=VVksIho0Ie&;u zOiD$SQk}}Ym2Sc8xKRl7;;v_eqX;eo{Kb?XN8+w4@-q;YlN^?>)4js$Sn1nC*CJ_c zgnW4!Jw97&|1J(nH_^NL{Z4!_U(VyS98_Hm4;L<%UC8aq4!J7Ft`P<|Z&+cUnCp>5 zRuM@ebOCpyQ2O~Vbx|PZZYX!6W0){N>8ts*>}wNVA!%^SM%8Kp>X;juUB#)}(VcqJlt))Xr*1aUO_ zb^&Zd8+V*{8lI8(Rdv4AW5KnGF83SHIh}Ydbv@#S^a0*{1tZVWQj%)R!+xi9%X_{A z9{(;sQz}C9%5Xw|DACqAQ)ID3(9p z-?aEm7h6bwX`956hQAs&QZ&EFZIWBc26=*@{d-sqo6AFP)r!VJXyzOF6(y2QTi;fx za{YOi*qkj+b!#W37XohRPY=Z>fxy{VwB2fo$?YPmcde!RSFI5OK_H7iv-`xYqAm9W z{lu)`XhDa-ouZA4{)BKj|5M>R$l7W&=nvy;tN7omI&o>%_etFB5wKg^w&}H@+D7b8 z1Vuc8A+6FAr@$D=2iynzP>A@4Qcj=k5xC^n)@lbdYEAqYg$+%Aj+(Ac@`1 zK53RJfBDz_4~Q@N3&JPr#^IHC-M*1ZLfOdgPluitE+&PHZc)^Tc_G&NWXOg^&L)Z} zs=-S&!i$<)3BG!>1P4BCVh7v}%A@0LR-v6*zT(UVN!=mUhnHaN;7&b(vWQSZn&Lp>Fxst_Z#+7+n zxAaDR7vOVPAU@w^o;^S%)Gu8u31D=7XOQTk@8U~KLZ3u1^9s|W4~ zR)e_rU|Ag+QGW;hawkGTlErybB-;u+&;E3=LOxv*8SFbtV=68PKlE234GXi-+gazq zqwU#CsW~8^VE;`>9ZOi?)tR3qExmK$zjkx990OVxn#N>hMO_(@Ebx{mgr0d|1`lTi zU%E9xuoKw*d62qKfDOtIDZqwvnD^hV&%qW6ZC`v;S9xstapbH^OiB%sb90%rVT6Z< zA&8#NrH=IO*U1r)`T8wo_k1D^UqCDj)Xi$s!y&Cl$HxT~ofL}yyBe!B+17NPIIVDQ=S355K)T0MOva z5ADkEl6nYT$U@x5((}vp>?G?e>(|^jTs?KmV+&G^IR6XuQgQ#udiQ!1nhD?=gqxRV z`q$~(Dx(yswB?+1nR~C>XYDdoC59j#iwo5Ss8^AY4VAJC|2LLMCacutlrNj7bMCGz z_Mta}-^}1-y10v&b^4V&XxRJ8+~!M23DKzQ_=7EIMyTX!){B6@>f&aVZb8C*b$X$$ zLUI0&+Y*_+qwCy0m|_e%TT zd5`$fh&x_PAKtE+MQy16@!y!ExMM~ID1Lz#r|Rh!XWp$!IVl45e-szmey{udv@* Date: Sun, 16 Oct 2016 22:53:46 -0700 Subject: [PATCH 04/15] Fixes an issue where moving in no grav would push off movable objects when nonmovable ones were availablee --- code/modules/mob/mob_movement.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index d52bdf07aa0..a83cccc2f09 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -277,7 +277,6 @@ return 0 /mob/get_spacemove_backup() - var/atom/movable/dense_object_backup for(var/A in orange(1, get_turf(src))) if(isarea(A)) continue @@ -297,9 +296,7 @@ return AM if(pulling == AM) continue - dense_object_backup = AM - break - . = dense_object_backup + . = AM /mob/proc/mob_has_gravity() return has_gravity() From 29b4dc46161863fdeb2a86b5d669de385857d9cd Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Tue, 18 Oct 2016 00:38:19 +0000 Subject: [PATCH 05/15] Automatic changelog generation for PR #21022 [ci skip] --- html/changelogs/AutoChangeLog-pr-21022.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-21022.yml diff --git a/html/changelogs/AutoChangeLog-pr-21022.yml b/html/changelogs/AutoChangeLog-pr-21022.yml new file mode 100644 index 00000000000..d3f73f326e3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21022.yml @@ -0,0 +1,4 @@ +author: "Kor" +delete-after: True +changes: + - rscadd: "Added sloths to cargobay on Box and Meta" From 4cddd81120b08cada8856576ad2f1d62221dba9b Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Mon, 17 Oct 2016 21:36:38 -0400 Subject: [PATCH 06/15] Suicide now uses the pronoun helpers (#20973) * This doesn't actually matter, because you're dead forever once it happens... * is this entire pr chaff for something else * you'll do it? nah, fuck that I'll do it --- code/__HELPERS/pronouns.dm | 24 ++++++++++ code/_onclick/telekinesis.dm | 2 +- code/game/gamemodes/nuclear/nuclearbomb.dm | 11 ++--- code/game/machinery/newscaster.dm | 2 +- code/game/machinery/pipe/construction.dm | 4 +- code/game/objects/items/crayons.dm | 10 ++--- .../game/objects/items/devices/instruments.dm | 2 +- .../items/devices/radio/electropack.dm | 4 +- .../game/objects/items/stacks/sheets/glass.dm | 3 +- code/game/objects/items/toys.dm | 3 +- code/game/objects/items/weapons/RCD.dm | 2 +- code/game/objects/items/weapons/RPD.dm | 2 +- .../objects/items/weapons/airlock_painter.dm | 16 +++---- .../objects/items/weapons/cigs_lighters.dm | 4 +- .../game/objects/items/weapons/clown_items.dm | 4 +- code/game/objects/items/weapons/courtroom.dm | 4 +- code/game/objects/items/weapons/defib.dm | 2 +- code/game/objects/items/weapons/explosives.dm | 2 +- code/game/objects/items/weapons/gift.dm | 2 +- .../objects/items/weapons/grenades/plastic.dm | 6 +-- code/game/objects/items/weapons/handcuffs.dm | 2 +- .../objects/items/weapons/holy_weapons.dm | 2 +- code/game/objects/items/weapons/kitchen.dm | 6 +-- .../objects/items/weapons/melee/energy.dm | 5 +-- code/game/objects/items/weapons/melee/misc.dm | 22 ++++----- .../objects/items/weapons/storage/backpack.dm | 4 +- .../objects/items/weapons/storage/bags.dm | 2 +- .../objects/items/weapons/storage/book.dm | 4 +- .../objects/items/weapons/storage/boxes.dm | 2 +- .../objects/items/weapons/storage/toolbox.dm | 2 +- code/game/objects/items/weapons/stunbaton.dm | 2 +- .../game/objects/items/weapons/tanks/tanks.dm | 2 +- code/game/objects/items/weapons/tools.dm | 45 +++++++++---------- code/game/objects/items/weapons/twohanded.dm | 31 +++++++------ code/game/objects/items/weapons/weaponry.dm | 21 ++++----- code/modules/clothing/head/jobs.dm | 2 +- code/modules/clothing/shoes/miscellaneous.dm | 2 +- code/modules/clothing/suits/cloaks.dm | 2 +- .../detectivework/footprints_and_rag.dm | 3 +- .../food_and_drinks/drinks/drinks/bottle.dm | 10 ++--- .../modules/food_and_drinks/food/condiment.dm | 2 +- code/modules/hydroponics/grown/banana.dm | 4 +- code/modules/hydroponics/grown/kudzu.dm | 2 +- code/modules/hydroponics/grown/nettle.dm | 2 +- code/modules/hydroponics/hydroitemdefines.dm | 17 ++++--- .../mob/living/carbon/human/human_defense.dm | 3 +- code/modules/mob/living/living_defense.dm | 4 +- code/modules/paperwork/contract.dm | 2 +- code/modules/paperwork/handlabeler.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/paper_cutter.dm | 21 +++++---- code/modules/paperwork/paperplane.dm | 2 +- code/modules/paperwork/pen.dm | 2 +- code/modules/paperwork/stamps.dm | 2 +- code/modules/power/cable.dm | 4 +- code/modules/power/cell.dm | 2 +- code/modules/projectiles/gun.dm | 6 +-- code/modules/projectiles/guns/energy.dm | 6 +-- .../projectiles/guns/energy/special.dm | 7 --- code/modules/projectiles/guns/magic.dm | 2 +- code/modules/projectiles/guns/magic/wand.dm | 17 +++---- code/modules/projectiles/guns/projectile.dm | 6 +-- code/modules/surgery/tools.dm | 4 +- code/modules/zombie/items.dm | 21 +++------ 64 files changed, 215 insertions(+), 207 deletions(-) diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index 0bb4b3b9184..c2c6eb234a2 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -21,6 +21,9 @@ /datum/proc/p_are(temp_gender) . = "is" +/datum/proc/p_were(temp_gender) + . = "was" + /datum/proc/p_theyre(capitalized, temp_gender) . = p_they(capitalized, temp_gender) + "'" + copytext(p_are(temp_gender), 2) @@ -78,6 +81,13 @@ if(temp_gender == PLURAL || temp_gender == NEUTER) . = "are" +/client/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "was" + if(temp_gender == PLURAL || temp_gender == NEUTER) + . = "were" + /client/p_s(temp_gender) if(!temp_gender) temp_gender = gender @@ -141,6 +151,13 @@ if(temp_gender == PLURAL) . = "are" +/mob/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + . = "was" + if(temp_gender == PLURAL) + . = "were" + /mob/p_s(temp_gender) if(!temp_gender) temp_gender = gender @@ -183,6 +200,13 @@ temp_gender = PLURAL return ..() +/mob/living/carbon/human/p_were(temp_gender) + var/list/obscured = check_obscured_slots() + var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if((slot_w_uniform in obscured) && skipface) + temp_gender = PLURAL + return ..() + /mob/living/carbon/human/p_s(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 0b050c9322f..7a606104350 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -189,7 +189,7 @@ var/const/tk_maxrange = 15 return /obj/item/tk_grab/suicide_act(mob/user) - user.visible_message("[user] is using \his telekinesis to choke \himself! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") return (OXYLOSS) /*Not quite done likely needs to use something thats not get_step_to diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 3135d4fd9ed..9c4a93cd166 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -512,19 +512,20 @@ This is here to make the tiles around the station mininuke change when it's arme return ..() /obj/item/weapon/disk/nuclear/suicide_act(mob/user) - user.visible_message("[user] is \ - going delta! It looks like they're comitting suicide.") + user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!") playsound(user.loc, 'sound/machines/Alarm.ogg', 50, -1, 1) var/end_time = world.time + 100 var/orig_color = user.color while(world.time < end_time) if(!user) return - user.color = RANDOM_COLOUR + if(user.color == "#FF0000") + user.color = "#00FF00" + else + user.color = "#FF0000" sleep(1) user.color = orig_color - user.visible_message("[user] was destroyed \ - by the nuclear blast!") + user.visible_message("[user] was destroyed by the nuclear blast!") return OXYLOSS /obj/item/weapon/disk/nuclear/process() diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index a81c2d36fc9..9e06b6ad461 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -899,7 +899,7 @@ var/list/obj/machinery/newscaster/allCasters = list() var/creationTime /obj/item/weapon/newspaper/suicide_act(mob/user) - user.visible_message("[user] is focusing intently on [src]! It looks like they're trying to commit sudoku... until their eyes light up with realization!") + user.visible_message("[user] is focusing intently on [src]! It looks like [user.p_theyre()] trying to commit sudoku... until their eyes light up with realization!") user.say(";JOURNALISM IS MY CALLING! EVERYBODY APPRECIATES UNBIASED REPORTI-GLORF") var/mob/living/carbon/human/H = user var/obj/W = new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(H.loc) diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index b42f5c8c196..1780cf9edf3 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -241,8 +241,8 @@ var/global/list/pipeID2State = list( qdel(src) /obj/item/pipe/suicide_act(mob/user) - if (pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP)) - user.visible_message("[user] shoved the [src] in \his mouth and turned it on! It looks like \he's trying to commit suicide.") + if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP)) + user.visible_message("[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!") if(istype(user, /mob/living/carbon)) var/mob/living/carbon/C = user for(var/i=1 to 20) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 04b6a733880..c26f459bb07 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -69,7 +69,7 @@ var/post_noise = FALSE /obj/item/toy/crayon/suicide_act(mob/user) - user.visible_message("[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.") + user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS|OXYLOSS) /obj/item/toy/crayon/New() @@ -575,15 +575,11 @@ /obj/item/toy/crayon/spraycan/suicide_act(mob/user) var/mob/living/carbon/human/H = user if(is_capped || !actually_paints) - user.visible_message("[user] shakes up the \ - [src] with a rattle and lifts it to their mouth, but nothing \ - happens!") + user.visible_message("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, but nothing happens!") user.say("MEDIOCRE!!") return SHAME else - user.visible_message("[user] shakes up the \ - [src] with a rattle and lifts it to their mouth, spraying \ - paint across their teeth!") + user.visible_message("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, spraying paint across [user.p_their()] teeth!") user.say("WITNESS ME!!") if(pre_noise || post_noise) playsound(loc, 'sound/effects/spray.ogg', 5, 1, 5) diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index cbdc878dcb3..681c85e10e8 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -18,7 +18,7 @@ return ..() /obj/item/device/instrument/suicide_act(mob/user) - user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like \he's trying to commit suicide..") + user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/device/instrument/initialize() diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index bfd6135bf14..4bc1983c43b 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -14,7 +14,7 @@ var/shock_cooldown = 0 /obj/item/device/electropack/suicide_act(mob/user) - user.visible_message("[user] hooks \himself to the electropack and spams the trigger! It looks like \he's trying to commit suicide..") + user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) /obj/item/device/electropack/initialize() @@ -40,7 +40,7 @@ A.icon = 'icons/obj/assemblies.dmi' if(!user.unEquip(W)) - user << "\the [W] is stuck to your hand, you cannot attach it to \the [src]!" + user << "[W] is stuck to your hand, you cannot attach it to [src]!" return W.loc = A W.master = A diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index bcdce786746..103ecef6bd3 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -294,8 +294,7 @@ sharpness = IS_SHARP /obj/item/weapon/shard/suicide_act(mob/user) - user.visible_message(pick("[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.")) + user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide.") return (BRUTELOSS) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7fad3b35eb6..a5287918a82 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -609,8 +609,7 @@ "Remember, a dog is for life, not just for christmas.") /obj/item/toy/talking/skeleton/suicide_act(mob/user) - user.visible_message("[user] is trying to commit \ - suicide with \the [src].") + user.visible_message("[user] is trying to commit suicide with [src].") if(ishuman(user)) var/mob/living/carbon/human/H = user diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 443f5f09907..1012b45d416 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -73,7 +73,7 @@ RCD the RCD blinks yellow." /obj/item/weapon/rcd/suicide_act(mob/user) - user.visible_message("[user] sets the RCD to 'Wall' and points it down \his throat! It looks like \he's trying to commit suicide..") + user.visible_message("[user] sets the RCD to 'Wall' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide..") return (BRUTELOSS) /obj/item/weapon/rcd/verb/toggle_window_type() diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index b94e7c41697..9877c474b91 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -169,7 +169,7 @@ var/global/list/RPD_recipes=list( show_menu(user) /obj/item/weapon/pipe_dispenser/suicide_act(mob/user) - user.visible_message("[user] points the end of the RPD down \his throat and presses a button! It looks like \he's trying to commit suicide...") + user.visible_message("[user] points the end of the RPD down [user.p_their()] throat and presses a button! It looks like [user.p_theyre()] trying to commit suicide...") playsound(get_turf(user), 'sound/machines/click.ogg', 50, 1) playsound(get_turf(user), 'sound/items/Deconstruct.ogg', 50, 1) return(BRUTELOSS) diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm index 695eaec581f..9fd5f2c82c7 100644 --- a/code/game/objects/items/weapons/airlock_painter.dm +++ b/code/game/objects/items/weapons/airlock_painter.dm @@ -34,10 +34,10 @@ //because you're expecting user input. /obj/item/weapon/airlock_painter/proc/can_use(mob/user) if(!ink) - user << "There is no toner cartridge installed in \the [name]!" + user << "There is no toner cartridge installed in [src]!" return 0 else if(ink.charges < 1) - user << "\The [name] is out of ink!" + user << "[src] is out of ink!" return 0 else return 1 @@ -46,7 +46,7 @@ var/obj/item/organ/lungs/L = user.getorganslot("lungs") if(can_use(user) && L) - user.visible_message("[user] is inhaling toner from \the [name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is inhaling toner from [src]! It looks like [user.p_theyre()] trying to commit suicide!") use(user) // Once you've inhaled the toner, you throw up your lungs @@ -79,13 +79,13 @@ return (TOXLOSS|OXYLOSS) else if(can_use(user) && !L) - user.visible_message("[user] is spraying toner on \himself from \the [name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is spraying toner on [user.p_them()]self from [src]! It looks like [user.p_theyre()] trying to commit suicide.") user.reagents.add_reagent("colorful_reagent", 1) user.reagents.reaction(user, TOUCH, 1) return TOXLOSS else - user.visible_message("[user] is trying to inhale toner from \the [name]! It might be a suicide attempt if \the [name] had any toner.") + user.visible_message("[user] is trying to inhale toner from [src]! It might be a suicide attempt if [src] had any toner.") return SHAME @@ -107,12 +107,12 @@ /obj/item/weapon/airlock_painter/attackby(obj/item/weapon/W, mob/user, params) if(istype(W, /obj/item/device/toner)) if(ink) - user << "\the [name] already contains \a [ink]." + user << "[src] already contains \a [ink]." return if(!user.unEquip(W)) return W.loc = src - user << "You install \the [W] into \the [name]." + user << "You install [W] into [src]." ink = W playsound(src.loc, 'sound/machines/click.ogg', 50, 1) else @@ -123,5 +123,5 @@ playsound(src.loc, 'sound/machines/click.ogg', 50, 1) ink.loc = user.loc user.put_in_hands(ink) - user << "You remove \the [ink] from \the [name]." + user << "You remove [ink] from [src]." ink = null diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 7b5c25af4f0..96fbc0db822 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -114,7 +114,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM heat = 1000 /obj/item/clothing/mask/cigarette/suicide_act(mob/user) - user.visible_message("[user] is huffing the [src.name] as quickly as they can! It looks like \he's trying to give \himself cancer.") + user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.") return (TOXLOSS|OXYLOSS) /obj/item/clothing/mask/cigarette/New() @@ -591,7 +591,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM var/emagged = 0 //LET THE GRIEF BEGIN /obj/item/clothing/mask/vape/suicide_act(mob/user) - user.visible_message("[user] is puffin hard on dat vape, they trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer + user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer return (TOXLOSS|OXYLOSS) diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 723dbea6931..4d563832e4e 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -43,7 +43,7 @@ /obj/item/weapon/soap/suicide_act(mob/user) user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!") - user.visible_message("[user] lifts the [src.name] to their mouth and gnaws on it furiously, producing a thick froth! They'll never get that BB gun now!") + user.visible_message("[user] lifts [src] to their mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!") PoolOrNew(/obj/effect/particle_effect/foam, loc) return (TOXLOSS) @@ -106,7 +106,7 @@ var/cooldowntime = 20 /obj/item/weapon/bikehorn/suicide_act(mob/user) - user.visible_message("[user] solemnly points the horn at \his temple! It looks like \he's trying to commit suicide..") + user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!") playsound(src.loc, honksound, 50, 1) return (BRUTELOSS) diff --git a/code/game/objects/items/weapons/courtroom.dm b/code/game/objects/items/weapons/courtroom.dm index 734a0428179..746ff506c78 100644 --- a/code/game/objects/items/weapons/courtroom.dm +++ b/code/game/objects/items/weapons/courtroom.dm @@ -14,7 +14,7 @@ resistance_flags = FLAMMABLE /obj/item/weapon/gavelhammer/suicide_act(mob/user) - user.visible_message("[user] has sentenced \himself to death with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] has sentenced [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) return (BRUTELOSS) @@ -31,7 +31,7 @@ /obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weapon/gavelhammer)) playsound(loc, 'sound/items/gavel.ogg', 100, 1) - user.visible_message("[user] strikes \the [src] with \the [I].") + user.visible_message("[user] strikes [src] with [I].") user.changeNext_move(CLICK_CD_MELEE) else return ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index d23ce40ffc6..543e0fc6951 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -315,7 +315,7 @@ icon_state = "defibpaddles[wielded]_cooldown" /obj/item/weapon/twohanded/shockpaddles/suicide_act(mob/user) - user.visible_message("[user] is putting the live paddles on \his chest! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!") if(req_defib) defib.deductcharge(revivecost) playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index d329b466cf3..f9f15d56a7b 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -26,7 +26,7 @@ return ..() /obj/item/weapon/c4/suicide_act(mob/user) - user.visible_message("[user] activates the [src.name] and holds it above \his head! It looks like \he's going out with a bang!") + user.visible_message("[user] activates the [src.name] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!") var/message_say = "FOR NO RAISIN!" if(user.mind) if(user.mind.special_role) diff --git a/code/game/objects/items/weapons/gift.dm b/code/game/objects/items/weapons/gift.dm index 6da16cb6e4a..2f5ba182a6b 100644 --- a/code/game/objects/items/weapons/gift.dm +++ b/code/game/objects/items/weapons/gift.dm @@ -22,7 +22,7 @@ icon_state = "giftdeliverypackage[rand(1,5)]" /obj/item/weapon/a_gift/suicide_act(mob/user) - user.visible_message("[user] peeks inside the [src.name] and cries \himself to death! It looks like they were on the naughty list...") + user.visible_message("[user] peeks inside [src] and cries [user.p_them()]self to death! It looks like [user.p_they()] [user.p_were()] on the naughty list...") return (BRUTELOSS) /obj/item/weapon/a_gift/attack_self(mob/M) diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm index 5d11b5bdac8..6485502340a 100644 --- a/code/game/objects/items/weapons/grenades/plastic.dm +++ b/code/game/objects/items/weapons/grenades/plastic.dm @@ -87,9 +87,9 @@ addtimer(src, "prime", det_time*10) /obj/item/weapon/grenade/plastic/suicide_act(mob/user) - message_admins("[key_name_admin(user)](?) (FLW) suicided with [src.name] at ([user.x],[user.y],[user.z] - JMP)",0,1) - message_admins("[key_name(user)] suicided with [src.name] at ([user.x],[user.y],[user.z])") - user.visible_message("[user] activates the [src.name] and holds it above \his head! It looks like \he's going out with a bang!") + message_admins("[key_name_admin(user)](?) (FLW) suicided with [src] at ([user.x],[user.y],[user.z] - JMP)",0,1) + message_admins("[key_name(user)] suicided with [src] at ([user.x],[user.y],[user.z])") + user.visible_message("[user] activates [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!") var/message_say = "FOR NO RAISIN!" if(user.mind) if(user.mind.special_role) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 762832bd4e8..4169ff9a503 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -248,7 +248,7 @@ icon_state = "[initial(icon_state)][armed]" /obj/item/weapon/restraints/legcuffs/beartrap/suicide_act(mob/user) - user.visible_message("[user] is sticking \his head in the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is sticking [user.p_their()] head in the [src.name]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return (BRUTELOSS) diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 4df4798b4db..d9061519468 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -11,7 +11,7 @@ var/reskinned = FALSE /obj/item/weapon/nullrod/suicide_act(mob/user) - user.visible_message("[user] is killing \himself with \the [src.name]! It looks like \he's trying to get closer to god!") + user.visible_message("[user] is killing [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to get closer to god!") return (BRUTELOSS|FIRELOSS) /obj/item/weapon/nullrod/attack_self(mob/user) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 4b9189cbe1d..eb11b15cd10 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -75,9 +75,9 @@ return ..() /obj/item/weapon/kitchen/knife/suicide_act(mob/user) - user.visible_message(pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")) + user.visible_message(pick("[user] is slitting [user.p_their()] wrists with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ + "[user] is slitting [user.p_their()] throat with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \ + "[user] is slitting [user.p_their()] stomach open with the [src.name]! It looks like [user.p_theyre()] trying to commit seppuku.")) return (BRUTELOSS) /obj/item/weapon/kitchen/knife/ritual diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 68c264455be..54103242d4d 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -13,8 +13,7 @@ resistance_flags = FIRE_PROOF /obj/item/weapon/melee/energy/suicide_act(mob/user) - user.visible_message(pick("[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.", \ - "[user] is falling on [src]! It looks like \he's trying to commit suicide.")) + user.visible_message("[user] is [pick("slitting [user.p_their()] stomach open with", "falling on")] [src]! It looks like [user.p_theyre()] trying to commit seppuku!") return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/add_blood(list/blood_dna) @@ -43,7 +42,7 @@ attack_verb_on = list() /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - user.visible_message("[user] swings the [src.name] towards \his head! It looks like \he's trying to commit suicide.") + user.visible_message("[user] swings [src] towards [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/sword diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 316d34adde8..d771dc5f025 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -18,8 +18,8 @@ materials = list(MAT_METAL = 1000) /obj/item/weapon/melee/chainofcommand/suicide_act(mob/user) - user.visible_message("[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.") - return (OXYLOSS) + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (OXYLOSS) /obj/item/weapon/melee/synthetic_arm_blade name = "synthetic arm blade" @@ -102,8 +102,8 @@ target.Weaken(3) add_logs(user, target, "stunned", src) src.add_fingerprint(user) - target.visible_message("[user] has knocked down [target] with \the [src]!", \ - "[user] has knocked down [target] with \the [src]!") + target.visible_message("[user] has knocked down [target] with [src]!", \ + "[user] has knocked down [target] with [src]!") if(!iscarbon(user)) target.LAssailant = null else @@ -126,7 +126,7 @@ var/mob/living/carbon/human/H = user var/obj/item/organ/brain/B = H.getorgan(/obj/item/organ/brain) - user.visible_message("[user] stuffs the [src] up their nose and presses the 'extend' button! It looks like they're trying to clear their mind.") + user.visible_message("[user] stuffs [src] up [user.p_their()] nose and presses the 'extend' button! It looks like [user.p_theyre()] trying to clear their mind.") if(!on) src.attack_self(user) else @@ -179,7 +179,7 @@ ..() shard = new /obj/machinery/power/supermatter_shard(src) START_PROCESSING(SSobj, src) - visible_message("\The [src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.") + visible_message("[src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.") /obj/item/weapon/melee/supermatter_sword/process() if(balanced || throwing || ismob(src.loc) || isnull(src.loc)) @@ -213,22 +213,22 @@ balanced = 0 /obj/item/weapon/melee/supermatter_sword/ex_act(severity, target) - visible_message("\The blast wave smacks into \the [src] and rapidly flashes to ash.",\ + visible_message("The blast wave smacks into [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") consume_everything() /obj/item/weapon/melee/supermatter_sword/acid_act() - visible_message("\The acid smacks into \the [src] and rapidly flashes to ash.",\ + visible_message("The acid smacks into [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") consume_everything() /obj/item/weapon/melee/supermatter_sword/bullet_act(obj/item/projectile/P) - visible_message("[P] smacks into \the [src] and rapidly flashes to ash.",\ + visible_message("[P] smacks into [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") consume_everything() /obj/item/weapon/melee/supermatter_sword/suicide_act(mob/user) - user.visible_message("[user] touches the [src]'s blade. It looks like they're tired of waiting for the radiation to kill them!") + user.visible_message("[user] touches [src]'s blade. It looks like [user.p_theyre()] tired of waiting for the radiation to kill [user.p_them()]!") user.drop_item() shard.Bumped(user) @@ -244,7 +244,7 @@ if(istype(T, T.baseturf)) return //Can't void the void, baby! playsound(T, 'sound/effects/supermatter.ogg', 50, 1) - T.visible_message("\The [T] smacks into \the [src] and rapidly flashes to ash.",\ + T.visible_message("[T] smacks into [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") shard.Consume() T.ChangeTurf(T.baseturf) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index b885b7d51fc..c678ad18a4e 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -45,7 +45,7 @@ /obj/item/weapon/storage/backpack/holding/suicide_act(mob/user) - user.visible_message("[user] is jumping into [src]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") user.drop_item() user.Stun(5) sleep(20) @@ -100,7 +100,7 @@ max_combined_w_class = 60 /obj/item/weapon/storage/backpack/santabag/suicide_act(mob/user) - user.visible_message("[user] places the [src.name] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") + user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...") return (OXYLOSS) /obj/item/weapon/storage/backpack/cultpack diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index ae1173db001..216e983acba 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -41,7 +41,7 @@ cant_hold = list(/obj/item/weapon/disk/nuclear) /obj/item/weapon/storage/bag/trash/suicide_act(mob/user) - user.visible_message("[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!") + user.visible_message("[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!") playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1) return (TOXLOSS) diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm index fb83d85e1a1..927f7a74c6c 100644 --- a/code/game/objects/items/weapons/storage/book.dm +++ b/code/game/objects/items/weapons/storage/book.dm @@ -20,7 +20,7 @@ var/deity_name = "Christ" /obj/item/weapon/storage/book/bible/suicide_act(mob/user) - user.visible_message("[user] is offering \himself to [src.deity_name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is offering [user.p_them()]self to [deity_name]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/weapon/storage/book/bible/booze @@ -153,7 +153,7 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", " return if (user.disabilities & CLUMSY && prob(50)) - user << "The [src] slips out of your hand and hits your head." + user << "[src] slips out of your hand and hits your head." user.take_bodypart_damage(10) user.Paralyse(20) return diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index d8e8a8cfd0c..31ec1007d76 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -566,7 +566,7 @@ foldable = null /obj/item/weapon/storage/box/hug/suicide_act(mob/user) - user.visible_message("[user] clamps the box of hugs on \his jugular! Guess it wasn't such a hugbox after all..") + user.visible_message("[user] clamps the box of hugs on [user.p_their()] jugular! Guess it wasn't such a hugbox after all..") return (BRUTELOSS) /obj/item/weapon/storage/box/hug/attack_self(mob/user) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 62ace83774f..0cea2e0119b 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -15,7 +15,7 @@ hitsound = 'sound/weapons/smash.ogg' /obj/item/weapon/storage/toolbox/suicide_act(mob/user) - user.visible_message("[user] robusts \himself with [src]! It looks like \he's trying to commit suicide..") + user.visible_message("[user] robusts [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/weapon/storage/toolbox/emergency diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index c4118cce190..f7bd5368e37 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -18,7 +18,7 @@ var/throw_hit_chance = 35 /obj/item/weapon/melee/baton/suicide_act(mob/user) - user.visible_message("[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) /obj/item/weapon/melee/baton/New() diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index 18b428f311d..4c2f7c5a5d7 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -114,7 +114,7 @@ /obj/item/weapon/tank/suicide_act(mob/user) var/mob/living/carbon/human/H = user - user.visible_message("[user] is putting the [src]'s valve to their lips! I don't think they're gonna stop!") + user.visible_message("[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/effects/spray.ogg', 10, 1, -3) if (H && !qdeleted(H)) for(var/obj/item/W in H) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 7c225fe21e8..906d25d77d1 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -32,7 +32,7 @@ armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) /obj/item/weapon/wrench/suicide_act(mob/user) - user.visible_message("[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) return (BRUTELOSS) @@ -64,13 +64,13 @@ /obj/item/weapon/wrench/power/attack_self(mob/user) playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) var/obj/item/weapon/wirecutters/power/s_drill = new /obj/item/weapon/screwdriver/power - user << "You attach the screw driver bit to the [src]." + user << "You attach the screw driver bit to [src]." user.unEquip(src) user.put_in_active_hand(s_drill) qdel(src) obj/item/weapon/wrench/power/suicide_act(mob/user) - user.visible_message("[user] is pressing the [src] against \his head, it looks like he's trying to drill \his head off") + user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/weapon/wrench/medical @@ -83,7 +83,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked") /obj/item/weapon/wrench/medical/suicide_act(mob/user) - user.visible_message("[user] is praying to the medical wrench to take \his soul. It looks like \he's trying to commit suicide.") + user.visible_message("[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!") // TODO Make them glow with the power of the M E D I C A L W R E N C H // during their ascension @@ -134,8 +134,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) /obj/item/weapon/screwdriver/suicide_act(mob/user) - user.visible_message(pick("[user] is stabbing the [src] into \his temple! It looks like \he's trying to commit suicide.", \ - "[user] is stabbing the [src] into \his heart! It looks like \he's trying to commit suicide.")) + user.visible_message("[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!") return(BRUTELOSS) /obj/item/weapon/screwdriver/New(loc, var/param_color = null) @@ -181,13 +180,13 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) toolspeed = 4 /obj/item/weapon/screwdriver/power/suicide_act(mob/user) - user.visible_message("[user] is putting the [src] up to \his temple, it looks like they're trying to commit suicide") + user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!") return(BRUTELOSS) /obj/item/weapon/screwdriver/power/attack_self(mob/user) playsound(get_turf(user),'sound/items/change_drill.ogg',50,1) var/obj/item/weapon/wrench/power/b_drill = new /obj/item/weapon/wrench/power - user << "You attach the bolt driver bit to the [src]." + user << "You attach the bolt driver bit to [src]." user.unEquip(src) user.put_in_active_hand(b_drill) qdel(src) @@ -241,7 +240,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) ..() /obj/item/weapon/wirecutters/suicide_act(mob/user) - user.visible_message("[user] is cutting at \his arteries with the [src]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1) return (BRUTELOSS) @@ -269,21 +268,20 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) toolspeed = 4 /obj/item/weapon/wirecutters/power/suicide_act(mob/user) - user.visible_message("[user] is the [src] around \his neck, it looks like \he's trying to rip \his head off!") + user.visible_message("[user] is [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!") playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1) - var/mob/living/carbon/C = user - var/obj/item/bodypart/BP = C.get_bodypart("head") - if(BP) - BP.drop_limb()// <- i have no idea why this works, but it does - playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) - else - user.visible_message("[user] doesn't have a head to cutt off, but dies anyway.") + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) /obj/item/weapon/wirecutters/power/attack_self(mob/user) playsound(get_turf(user),"sound/items/change_jaws.ogg",50,1) var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power - user << "You attach the pry jaws to the [src]." + user << "You attach the pry jaws to [src]." user.unEquip(src) user.put_in_active_hand(pryjaws) qdel(src) @@ -372,7 +370,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user) /obj/item/weapon/weldingtool/suicide_act(mob/user) - user.visible_message("[user] welds \his every orifice closed! It looks like \he's trying to commit suicide..") + user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) @@ -554,8 +552,7 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user) /obj/item/weapon/weldingtool/ignition_effect(atom/A, mob/user) if(welding && remove_fuel(1, user)) - . = "[user] casually lights [A] with [src], \ - what a badass." + . = "[user] casually lights [A] with [src], what a badass." else . = "" @@ -651,7 +648,7 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user) armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30) /obj/item/weapon/crowbar/suicide_act(mob/user) - user.visible_message("[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1) return (BRUTELOSS) @@ -697,14 +694,14 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user) toolspeed = 4 /obj/item/weapon/crowbar/power/suicide_act(mob/user) - user.visible_message("[user] is putting his head in the [src], it looks like \he's trying to commit suicide!") + user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1) return (BRUTELOSS) /obj/item/weapon/crowbar/power/attack_self(mob/user) playsound(get_turf(user),"sound/items/change_jaws.ogg",50,1) var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power - user << "You attach the cutting jaws to the [src]." + user << "You attach the cutting jaws to [src]." user.unEquip(src) user.put_in_active_hand(cutjaws) qdel(src) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index ec802e17b6e..d8f2c0a205f 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -44,9 +44,9 @@ if(iscyborg(user)) user << "You free up your module." else if(istype(src, /obj/item/weapon/twohanded/required)) - user << "You drop \the [name]." + user << "You drop [src]." else - user << "You are now carrying the [name] with one hand." + user << "You are now carrying [src] with one hand." if(unwieldsound) playsound(loc, unwieldsound, 50, 1) var/obj/item/weapon/twohanded/offhand/O = user.get_inactive_held_item() @@ -72,14 +72,14 @@ name = "[name] (Wielded)" update_icon() if(iscyborg(user)) - user << "You dedicate your module to [name]." + user << "You dedicate your module to [src]." else - user << "You grab the [name] with both hands." + user << "You grab [src] with both hands." if (wieldsound) playsound(loc, wieldsound, 50, 1) var/obj/item/weapon/twohanded/offhand/O = new(user) ////Let's reserve his other hand~ O.name = "[name] - offhand" - O.desc = "Your second grip on the [name]" + O.desc = "Your second grip on [src]." user.put_in_inactive_hand(O) return @@ -136,7 +136,7 @@ /obj/item/weapon/twohanded/required/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) if(wielded && !slot_flags) - M << "\The [src] is too cumbersome to carry with anything but your hands!" + M << "[src] is too cumbersome to carry with anything but your hands!" return 0 return ..() @@ -145,7 +145,7 @@ if(get_dist(src,user) > 1) return 0 if(H != null) - user << "\The [src] is too cumbersome to carry in one hand!" + user << "[src] is too cumbersome to carry in one hand!" return if(src.loc != user) wield(user) @@ -170,7 +170,7 @@ w_class = 4 slot_flags = SLOT_BACK force_unwielded = 5 - force_wielded = 24 // Was 18, Buffed - RobRichards/RR + force_wielded = 24 attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") hitsound = 'sound/weapons/bladeslice.ogg' sharpness = IS_SHARP @@ -184,7 +184,7 @@ return /obj/item/weapon/twohanded/fireaxe/suicide_act(mob/user) - user.visible_message("[user] axes \himself from head to toe! It looks like \he's trying to commit suicide..") + user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/weapon/twohanded/fireaxe/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) @@ -263,7 +263,7 @@ sleep(1) /obj/item/weapon/twohanded/dualsaber/proc/impale(mob/living/user) - user << "You twirl around a bit before losing your balance and impaling yourself on \the [src]." + user << "You twirl around a bit before losing your balance and impaling yourself on [src]." if (force_wielded) user.take_bodypart_damage(20,25) else @@ -316,8 +316,7 @@ var/mob/living/carbon/C = user if(C.wear_mask == src) in_mouth = ", barely missing their nose" - . = "[user] swings their \ - [src][in_mouth]. They light [A] in the process." + . = "[user] swings [user.p_their()] [src][in_mouth]. [user.p_they()] light[user.p_s()] [A] in the process." playsound(loc, hitsound, get_clamped_volume(), 1, -1) add_fingerprint(user) // Light your candles while spinning around the room @@ -435,7 +434,7 @@ /obj/item/weapon/twohanded/required/chainsaw/attack_self(mob/user) on = !on - user << "As you pull the starting cord dangling from \the [src], [on ? "it begins to whirr." : "the chain stops moving."]" + user << "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]" force = on ? force_on : initial(force) throwforce = on ? force_on : initial(force) icon_state = "chainsaw_[on ? "on" : "off"]" @@ -535,7 +534,7 @@ icon_state = "pitchfork[wielded]" /obj/item/weapon/twohanded/pitchfork/suicide_act(mob/user) - user.visible_message("[user] impales \himself in \his abdomen with [src]! It looks like \he's trying to commit suicide..") + user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/weapon/twohanded/pitchfork/demonic/pickup(mob/user) @@ -543,7 +542,7 @@ var/mob/living/U = user if(U.mind && !U.mind.devilinfo && (U.mind.soulOwner == U.mind)) //Burn hands unless they are a devil or have sold their soul U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \ - "\"As you pick up the [src] your arms ignite, reminding you of all your past sins.\"") + "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") if(ishuman(U)) var/mob/living/carbon/human/H = U H.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm")) @@ -552,7 +551,7 @@ /obj/item/weapon/twohanded/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) if(user.mind && !user.mind.devilinfo && (user.mind.soulOwner != user.mind)) - user << "The [src] burns in your hands." + user << "[src] burns in your hands." user.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm")) ..() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index f4b710244a9..48dff5d10e5 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -40,7 +40,7 @@ resistance_flags = FIRE_PROOF /obj/item/weapon/banhammer/suicide_act(mob/user) - user.visible_message("[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life.") + user.visible_message("[user] is hitting [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.") return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) /obj/item/weapon/banhammer/attack(mob/M, mob/user) @@ -61,8 +61,9 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") /obj/item/weapon/sord/suicide_act(mob/user) - user.visible_message("[user] is trying to impale \himself with \the [name]! It might be a suicide attempt if it weren't so shitty.", "You try to impale yourself with \the [name], but it's USELESS...") - return(SHAME) + user.visible_message("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.", \ + "You try to impale yourself with [src], but it's USELESS...") + return SHAME /obj/item/weapon/claymore name = "claymore" @@ -84,7 +85,7 @@ resistance_flags = FIRE_PROOF /obj/item/weapon/claymore/suicide_act(mob/user) - user.visible_message("[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(BRUTELOSS) var/highlander_claymores = 0 @@ -128,7 +129,7 @@ var/highlander_claymores = 0 /obj/item/weapon/claymore/highlander/pickup(mob/living/user) user << "The power of Scotland protects you! You are shielded from all stuns and knockdowns." - user.add_stun_absorption("highlander", INFINITY, 1, "is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!") + user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!") /obj/item/weapon/claymore/highlander/dropped(mob/living/user) qdel(src) //If this ever happens, it's because you lost an arm @@ -237,7 +238,7 @@ var/highlander_claymores = 0 slot_flags = null /obj/item/weapon/katana/suicide_act(mob/user) - user.visible_message("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") + user.visible_message("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!") return(BRUTELOSS) /obj/item/weapon/wirerod @@ -335,7 +336,7 @@ var/highlander_claymores = 0 sharpness = IS_BLUNT /obj/item/weapon/switchblade/suicide_act(mob/user) - user.visible_message("[user] is slitting \his own throat with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) /obj/item/weapon/phone @@ -353,9 +354,9 @@ var/highlander_claymores = 0 /obj/item/weapon/phone/suicide_act(mob/user) if(locate(/obj/structure/chair/stool) in user.loc) - user.visible_message("[user] begins to tie a noose with the [src.name]'s cord! It looks like \he's trying to commit suicide.") + user.visible_message("[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") else - user.visible_message("[user] is strangling \himself with the [src.name]'s cord! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is strangling [user.p_them()]self with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!") return(OXYLOSS) /obj/item/weapon/cane @@ -411,7 +412,7 @@ var/highlander_claymores = 0 icon_state = "ectoplasm" /obj/item/weapon/ectoplasm/suicide_act(mob/user) - user.visible_message("[user] is inhaling the [src.name]! It looks like \he's trying to visit the astral plane.") + user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.") return (OXYLOSS) /obj/item/weapon/mounted_chainsaw diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index ebde71d8005..c28acd10e73 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -11,7 +11,7 @@ dog_fashion = /datum/dog_fashion/head/chef /obj/item/clothing/head/chefhat/suicide_act(mob/user) - user.visible_message("[user] is donning [src]! It looks like they're trying to become a chef.") + user.visible_message("[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef.") user.say("Bork Bork Bork!") sleep(20) user.visible_message("[user] climbs into an imaginary oven!") diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index c5f6436a484..8267c58d1a6 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -1,7 +1,7 @@ /obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking /obj/item/clothing/shoes/suicide_act(mob/user) - user.visible_message("[user] is bashing their own head in with [src]! Ain't that a kick in the head?") + user.visible_message("[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?") for(var/i = 0, i < 3, i++) sleep(3) playsound(user, 'sound/weapons/genhit2.ogg', 50, 1) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 77fd5976d4a..057752822f3 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -19,7 +19,7 @@ flags_inv = HIDEHAIR|HIDEEARS /obj/item/clothing/suit/cloak/suicide_act(mob/user) - user.visible_message("[user] is strangling themself with [src]! It looks like they're trying to commit suicide.") + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(OXYLOSS) /obj/item/clothing/suit/cloak/hos diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm index df05f33ccdb..8490c2bf5b3 100644 --- a/code/modules/detectivework/footprints_and_rag.dm +++ b/code/modules/detectivework/footprints_and_rag.dm @@ -19,8 +19,7 @@ spillable = 0 /obj/item/weapon/reagent_containers/glass/rag/suicide_act(mob/user) - user.visible_message("[user] ties the [src.name] around their head and groans! It looks like--") - user.say("MY BRAIN HURTS!!") + user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (OXYLOSS) /obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 306db8311da..afdc5aaaec7 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -109,8 +109,8 @@ target.visible_message("[user] has hit [target][head_attack_message] with a bottle of [src.name]!", \ "[user] has hit [target][head_attack_message] with a bottle of [src.name]!") else - user.visible_message("[target] hits \himself with a bottle of [src.name][head_attack_message]!", \ - "[target] hits \himself with a bottle of [src.name][head_attack_message]!") + user.visible_message("[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!", \ + "[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!") //Attack logs add_logs(user, target, "attacked", src) @@ -125,7 +125,7 @@ /obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(var/mob/M) if(src.reagents.total_volume) - M.visible_message("The contents of \the [src] splashes all over [M]!") + M.visible_message("The contents of [src] splashes all over [M]!") reagents.reaction(M, TOUCH) reagents.clear_reagents() return @@ -380,7 +380,7 @@ message_admins(message) log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].") - user << "You light \the [src] on fire." + user << "You light [src] on fire." add_overlay(fire_overlay) if(!isGlass) spawn(50) @@ -402,6 +402,6 @@ if(!isGlass) user << "The flame's spread too far on it!" return - user << "You snuff out the flame on \the [src]." + user << "You snuff out the flame on [src]." overlays -= fire_overlay active = 0 diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 9f5ed9a028b..813174a0649 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -125,7 +125,7 @@ possible_states = list() /obj/item/weapon/reagent_containers/food/condiment/saltshaker/suicide_act(mob/user) - user.visible_message("[user] begins to swap forms with the salt shaker! It looks like \he's trying to commit suicide.") + user.visible_message("[user] begins to swap forms with the salt shaker! It looks like [user.p_theyre()] trying to commit suicide!") var/newname = "[name]" name = "[user.name]" user.name = newname diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 6f6b04f66ea..f9a8a9ac207 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -25,7 +25,7 @@ bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user) - user.visible_message("[user] is aiming the [src.name] at themself! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) sleep(25) if(!user) @@ -49,7 +49,7 @@ throw_range = 7 /obj/item/weapon/grown/bananapeel/suicide_act(mob/user) - user.visible_message("[user] is deliberately slipping on the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1) return (BRUTELOSS) diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 2e05b8bb35b..a4825162e7e 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -22,7 +22,7 @@ return S /obj/item/seeds/kudzu/suicide_act(mob/user) - user.visible_message("[user] swallows the pack of kudzu seeds! It looks like \he's trying to commit suicide..") + user.visible_message("[user] swallows the pack of kudzu seeds! It looks like [user.p_theyre()] trying to commit suicide!") plant(user) return (BRUTELOSS) diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index fa8f9fc1de7..d9f52938f80 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -43,7 +43,7 @@ attack_verb = list("stung") /obj/item/weapon/grown/nettle/suicide_act(mob/user) - user.visible_message("[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is eating some of [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS|TOXLOSS) /obj/item/weapon/grown/nettle/pickup(mob/living/user) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 6d1a3be6e02..e2c3c518582 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -33,7 +33,7 @@ reagents.add_reagent("weedkiller", 100) /obj/item/weapon/reagent_containers/spray/weedspray/suicide_act(mob/user) - user.visible_message("[user] is huffing the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (TOXLOSS) /obj/item/weapon/reagent_containers/spray/pestspray // -- Skie @@ -55,7 +55,7 @@ reagents.add_reagent("pestkiller", 100) /obj/item/weapon/reagent_containers/spray/pestspray/suicide_act(mob/user) - viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (TOXLOSS) /obj/item/weapon/cultivator @@ -91,7 +91,7 @@ sharpness = IS_SHARP /obj/item/weapon/hatchet/suicide_act(mob/user) - user.visible_message("[user] is chopping at \himself with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return (BRUTELOSS) @@ -111,9 +111,14 @@ attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' -/obj/item/weapon/scythe/suicide_act(mob/user) // maybe later i'll actually figure out how to make it behead them - user.visible_message("[user] is beheading \himself with the [src.name]! It looks like \he's trying to commit suicide.") - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) +/obj/item/weapon/scythe/suicide_act(mob/user) + user.visible_message("[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) // ************************************* diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index b5a9658e9f5..e67f9364ac5 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -605,8 +605,7 @@ if(health >= 0) if(src == M) - visible_message( \ - "[src] examines \himself.", \ + visible_message("[src] examines [p_them()]self.", \ "You check yourself for injuries.") var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg") diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index f8a7915357e..3b95c35b0fd 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -142,8 +142,8 @@ if(user.grab_state) //only the first upgrade is instantaneous var/old_grab_state = user.grab_state var/grab_upgrade_time = 30 - visible_message("[user] starts to tighten \his grip on [src]!", \ - "[user] starts to tighten \his grip on you!") + visible_message("[user] starts to tighten [user.p_their()] grip on [src]!", \ + "[user] starts to tighten [user.p_their()] grip on you!") if(!do_mob(user, src, grab_upgrade_time)) return 0 if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != "grab") diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 60e324d1842..4e22783a969 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -99,7 +99,7 @@ if(signed && (user == target.current) && istype(user,/mob/living/carbon/human/)) var/mob/living/carbon/human/H = user H.forcesay("OH GREAT INFERNO! I DEMAND YOU COLLECT YOUR BOUNTY IMMEDIATELY!") - H.visible_message("[H] holds up a contract claiming his soul, then immediately catches fire. It looks like \he's trying to commit suicide!") + H.visible_message("[H] holds up a contract claiming [user.p_their()] soul, then immediately catches fire. It looks like [user.p_theyre()] trying to commit suicide!") H.adjust_fire_stacks(20) H.IgniteMob() return(FIRELOSS) diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index ee80b828451..6117dce62db 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -9,7 +9,7 @@ var/mode = 0 /obj/item/weapon/hand_labeler/suicide_act(mob/user) - user.visible_message("[user] is pointing \the [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!") + user.visible_message("[user] is pointing [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!") labels_left = max(labels_left - 1, 0) var/old_real_name = user.real_name diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 3ddb31a8343..a123a8f07a9 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -90,7 +90,7 @@ add_fingerprint(usr) /obj/item/weapon/paper/suicide_act(mob/user) - user.visible_message("[user] scratches a grid on their wrist with the paper! It looks like \he's trying to commit sudoku..") + user.visible_message("[user] scratches a grid on [user.p_their()] wrist with the paper! It looks like [user.p_theyre()] trying to commit sudoku...") return (BRUTELOSS) /obj/item/weapon/paper/attack_self(mob/user) diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm index 8f959443ddd..8b1f3519638 100644 --- a/code/modules/paperwork/paper_cutter.dm +++ b/code/modules/paperwork/paper_cutter.dm @@ -19,11 +19,16 @@ /obj/item/weapon/papercutter/suicide_act(mob/user) if(storedcutter) - user.visible_message("[user] is beheading \himself with [src.name]! It looks like \he's trying to commit suicide.") - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + user.visible_message("[user] is beheading [user.p_them()]self with [src.name]! It looks like [user.p_theyre()] trying to commit suicide!") + if(iscarbon(user)) + var/mob/living/carbon/C = user + var/obj/item/bodypart/BP = C.get_bodypart("head") + if(BP) + BP.drop_limb() + playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1) return (BRUTELOSS) else - user.visible_message("[user] repeatedly bashes [src.name] against \his head! It looks like \he's trying to commit suicide.") + user.visible_message("[user] repeatedly bashes [src.name] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) return (BRUTELOSS) @@ -41,7 +46,7 @@ if(!user.drop_item()) return playsound(loc, "pageturn", 60, 1) - user << "You place \the [P] in [src]." + user << "You place [P] in [src]." P.loc = src storedpaper = P update_icon() @@ -56,16 +61,16 @@ return if(istype(P, /obj/item/weapon/screwdriver) && storedcutter) playsound(src, P.usesound, 50, 1) - user << "\The [storedcutter] has been [cuttersecured ? "unsecured" : "secured"]." + user << "[storedcutter] has been [cuttersecured ? "unsecured" : "secured"]." cuttersecured = !cuttersecured return ..() /obj/item/weapon/papercutter/attack_hand(mob/user) - src.add_fingerprint(user) + add_fingerprint(user) if(!storedcutter) - user << "The cutting blade is gone! You can't use \the [src] now." + user << "The cutting blade is gone! You can't use [src] now." return if(!cuttersecured) @@ -76,7 +81,7 @@ if(storedpaper) playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1) - user << "You neatly cut \the [storedpaper]." + user << "You neatly cut [storedpaper]." storedpaper = null qdel(storedpaper) new /obj/item/weapon/paperslip(get_turf(src)) diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index 4eb41425d40..e8795b3abe3 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -29,7 +29,7 @@ /obj/item/weapon/paperplane/suicide_act(mob/user) user.Stun(10) - user.visible_message("[user] jams the [src] in their brains. It looks like \he's trying to commit suicide.") + user.visible_message("[user] jams the [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!") user.adjust_blurriness(6) user.adjust_eye_damage(rand(6,8)) sleep(10) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 181350544c4..c77f7df7325 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -26,7 +26,7 @@ var/colour = "black" //what colour the ink is! /obj/item/weapon/pen/suicide_act(mob/user) - user.visible_message("[user] is scribbling numbers all over themself with [src]! It looks like they're trying to commit sudoku!") + user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...") return(BRUTELOSS) /obj/item/weapon/pen/blue diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index f86c1772ad1..016ac1e53f6 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -14,7 +14,7 @@ attack_verb = list("stamped") /obj/item/weapon/stamp/suicide_act(mob/user) - user.visible_message("[user] stamps 'VOID' on \his forehead, then promptly falls over, dead.") + user.visible_message("[user] stamps 'VOID' on [user.p_their()] forehead, then promptly falls over, dead.") return (OXYLOSS) /obj/item/weapon/stamp/qm diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index d4006cc4f16..aeeaf47a9f2 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -477,9 +477,9 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ /obj/item/stack/cable_coil/suicide_act(mob/user) if(locate(/obj/structure/chair/stool) in get_turf(user)) - user.visible_message("[user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is making a noose with [src]! It looks like [user.p_theyre()] trying to commit suicide!") else - user.visible_message("[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(OXYLOSS) /obj/item/stack/cable_coil/New(loc, amount = MAXCOIL, var/param_color = null) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 3b176d0a14a..d0812512d89 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -87,7 +87,7 @@ user << "The charge meter reads [round(src.percent() )]%." /obj/item/weapon/stock_parts/cell/suicide_act(mob/user) - user.visible_message("[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is licking the electrodes of [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) /obj/item/weapon/stock_parts/cell/attackby(obj/item/W, mob/user, params) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 6fab2ac2fa1..7415ff4bf5a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -160,14 +160,14 @@ if(clumsy_check) if(istype(user)) if (user.disabilities & CLUMSY && prob(40)) - user << "You shoot yourself in the foot with \the [src]!" + user << "You shoot yourself in the foot with [src]!" var/shot_leg = pick("l_leg", "r_leg") process_fire(user,user,0,params, zone_override = shot_leg) user.drop_item() return if(weapon_weight == WEAPON_HEAVY && user.get_inactive_held_item()) - user << "You need both hands free to fire \the [src]!" + user << "You need both hands free to fire [src]!" return process_fire(target,user,1,params) @@ -189,7 +189,7 @@ pin.auth_fail(user) return 0 else - user << "\The [src]'s trigger is locked. This weapon doesn't have a firing pin installed!" + user << "[src]'s trigger is locked. This weapon doesn't have a firing pin installed!" return 0 obj/item/weapon/gun/proc/newshot() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 185d5ff2654..8e6edf2608a 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -140,10 +140,10 @@ /obj/item/weapon/gun/energy/suicide_act(mob/user) if (src.can_shoot()) - user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.") + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") sleep(25) if(user.is_holding(src)) - user.visible_message("[user] melts \his face off with the [src.name]!") + user.visible_message("[user] melts [user.p_their()] face off with [src]!") playsound(loc, fire_sound, 50, 1, -1) var/obj/item/ammo_casing/energy/shot = ammo_type[select] power_supply.use(shot.e_cost) @@ -153,7 +153,7 @@ user.visible_message("[user] panics and starts choking to death!") return(OXYLOSS) else - user.visible_message("[user] is pretending to blow \his brains out with the [src.name]! It looks like \he's trying to commit suicide!") + user.visible_message("[user] is pretending to blow [user.p_their()] brains out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) return (OXYLOSS) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index bcdcc8287f4..8caed922e53 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -110,13 +110,6 @@ ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) pin = null -/obj/item/weapon/gun/energy/kinetic_accelerator/suicide_act(mob/user) - if(!suppressed) - playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) - user.visible_message("[user] cocks the [src.name] and pretends to blow \his brains out! It looks like \he's trying to commit suicide!") - shoot_live_shot() - return (OXYLOSS) - /obj/item/weapon/gun/energy/plasmacutter name = "plasma cutter" desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff." diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 60a2cd21e2f..0f85660da60 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -76,6 +76,6 @@ return /obj/item/weapon/gun/magic/suicide_act(mob/user) - user.visible_message("[user] is twisting the [src.name] above \his head, releasing a magical blast! It looks like \he's trying to commit suicide.") + user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, fire_sound, 50, 1, -1) return (FIRELOSS) \ No newline at end of file diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index 1262c57d5bd..57c3cfdf6d5 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -48,9 +48,9 @@ /obj/item/weapon/gun/magic/wand/proc/zap_self(mob/living/user) - user.visible_message("[user] zaps \himself with [src].") + user.visible_message("[user] zaps [user.p_them()]self with [src].") playsound(user, fire_sound, 50, 1) - user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] zapped \himself with a [src]" + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] zapped [user.p_them()]self with a [src]" ///////////////////////////////////// @@ -66,12 +66,13 @@ max_charges = 3 //3, 2, 2, 1 /obj/item/weapon/gun/magic/wand/death/zap_self(mob/living/user) - var/message ="You irradiate yourself with pure energy! " - message += pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?") - user << message + ..() + user << "You irradiate yourself with pure energy! \ + [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\ + " user.adjustOxyLoss(500) charges-- - ..() + ///////////////////////////////////// //WAND OF HEALING @@ -163,6 +164,6 @@ max_charges = 8 //8, 4, 4, 3 /obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user) - explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) - charges-- ..() + explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2) + charges-- \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 9b50a1e4a98..1c78936a348 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -143,17 +143,17 @@ /obj/item/weapon/gun/projectile/suicide_act(mob/user) if (src.chambered && src.chambered.BB && !src.chambered.BB.nodamage) - user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.") + user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!") sleep(25) if(user.is_holding(src)) process_fire(user, user, 0, zone_override = "head") - user.visible_message("[user] blows \his brains out with the [src.name]!") + user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!") return(BRUTELOSS) else user.visible_message("[user] panics and starts choking to death!") return(OXYLOSS) else - user.visible_message("[user] is pretending to blow \his brains out with the [src.name]! It looks like \he's trying to commit suicide!") + user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1) return (OXYLOSS) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 67b1a888703..c982a4fb9c0 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -64,9 +64,7 @@ sharpness = IS_SHARP_ACCURATE /obj/item/weapon/scalpel/suicide_act(mob/user) - user.visible_message(pick("[user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \ - "[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.")) + user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm index 40961cdb193..7f76b6898de 100644 --- a/code/modules/zombie/items.dm +++ b/code/modules/zombie/items.dm @@ -62,33 +62,28 @@ /obj/item/zombie_hand/proc/tear_airlock(obj/machinery/door/airlock/A, mob/user) removing_airlock = TRUE - user << "You start tearing apart the airlock...\ - " + user << "You start tearing apart the airlock..." playsound(src.loc, 'sound/machines/airlock_alien_prying.ogg', 100, 1) - A.audible_message("You hear a loud metallic \ - grinding sound.") + A.audible_message("You hear a loud metallic grinding sound.") addtimer(src, "growl", 20, unique=FALSE, target=user) if(do_after(user, delay=160, needhand=FALSE, target=A, progress=TRUE)) playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1) - A.audible_message("With a screech, [A] is torn \ - apart!") + A.audible_message("With a screech, [A] is torn apart!") var/obj/structure/door_assembly/door = new A.assemblytype(get_turf(A)) door.density = 0 door.anchored = 1 door.name = "ravaged [door]" - door.desc = "An airlock that has been torn apart. Looks like it \ - won't be keeping much out now." + door.desc = "An airlock that has been torn apart. Looks like it won't be keeping much out now." qdel(A) removing_airlock = FALSE /obj/item/zombie_hand/proc/growl(mob/user) if(removing_airlock) playsound(src.loc, 'sound/hallucinations/growl3.ogg', 50, 1) - user.audible_message("[user] growls as \ - their claws dig into the metal frame...") + user.audible_message("[user] growls as [user.p_their()] claws dig into the metal frame...") /obj/item/zombie_hand/suicide_act(mob/living/carbon/user) // Suiciding as a zombie brings someone else in to play it @@ -99,10 +94,8 @@ user.Weaken(30) var/success = offer_control(user) if(success) - user.visible_message("[user] appears to have \ - found new spirit.") + user.visible_message("[user] appears to have found new spirit.") return SHAME else - user.visible_message("[user] stops moving.\ - ") + user.visible_message("[user] stops moving.") return OXYLOSS From 748cd626604e7e10a235774c342e9fecb9d77265 Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Tue, 18 Oct 2016 04:09:55 +0000 Subject: [PATCH 07/15] Automatic changelog compile, [ci skip] --- html/changelog.html | 58 ++++++++++++---------- html/changelogs/.all_changelog.yml | 24 +++++++++ html/changelogs/AutoChangeLog-pr-20920.yml | 5 -- html/changelogs/AutoChangeLog-pr-20932.yml | 4 -- html/changelogs/AutoChangeLog-pr-20933.yml | 4 -- html/changelogs/AutoChangeLog-pr-20962.yml | 5 -- html/changelogs/AutoChangeLog-pr-20985.yml | 4 -- html/changelogs/AutoChangeLog-pr-20996.yml | 4 -- html/changelogs/AutoChangeLog-pr-21022.yml | 4 -- 9 files changed, 56 insertions(+), 56 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-20920.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-20932.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-20933.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-20962.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-20985.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-20996.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-21022.yml diff --git a/html/changelog.html b/html/changelog.html index 610edddcacf..44865bec538 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,38 @@ -->
+

18 October 2016

+

Basilman updated:

+
    +
  • A third martial art, CQC, has been added and is now available to nuke ops instead of sleeping carp
  • +
+

Kor updated:

+
    +
  • Added sloths to cargobay on Box and Meta
  • +
+

MrStonedOne updated:

+
    +
  • Byond 511 beta users may now choose their own FPS. This will apply to animations and other client side only effects. Find it in your game preferences.
  • +
+

Shadowlight213 updated:

+
    +
  • fixed removing modular computer components
  • +
+

TheCarlSaganExpress updated:

+
    +
  • Provided you have access, you may now use your ID to unlock the display case.
  • +
  • The fire axe cabinet and display case may now be repaired with the welder.
  • +
+

XDTM updated:

+
    +
  • You can now grind slime extracts in a reagent grinder. If the slime was unused it will result in slime jelly, while if used it will only output the reagents inside the extract.
  • +
+

phil235 updated:

+
    +
  • Visual effects appear on the target of an attack, similar to the item attack effect.
  • +
  • You now only see a message in chat when witnessing someone else getting attacked or hit by a bullet if you are close enough to the action.
  • +
+

16 October 2016

Cuboos updated:

    @@ -999,32 +1031,6 @@
    • Adds modular computers
    - -

    16 August 2016

    -

    MrStonedOne updated:

    -
      -
    • Automated the granting of profiler access to admins
    • -
    -

    oranges updated:

    -
      -
    • Nanotrasen is an all right kind of company
    • -
    - -

    15 August 2016

    -

    Joan updated:

    -
      -
    • The Ark of the Clockwork Justicar can now be constructed even if Ratvar's rise is not the objective.
    • -
    • Accordingly, its behavior is different; instead of summoning Ratvar, it will convert a massive amount of the station, and should effectively instantly complete the clockwork cult's objectives.
    • -
    -

    MrStonedOne updated:

    -
      -
    • Tweaked the lag stop numbers to hopefully reduce lag during 80+ population
    • -
    • Fixed the blackbox not blackboxing.
    • -
    -

    OSCAR MIKE updated:

    -
      -
    • CONTACT ON THE LEFT SIDE!
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index b2b08967a29..8e89527b365 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -7429,3 +7429,27 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. (and the bodybag starts open) scoopscoop: - bugfix: The cult shifter will now properly spawn as part of the veil walker set. +2016-10-18: + Basilman: + - rscadd: A third martial art, CQC, has been added and is now available to nuke + ops instead of sleeping carp + Kor: + - rscadd: Added sloths to cargobay on Box and Meta + MrStonedOne: + - experiment: Byond 511 beta users may now choose their own FPS. This will apply + to animations and other client side only effects. Find it in your game preferences. + Shadowlight213: + - bugfix: fixed removing modular computer components + TheCarlSaganExpress: + - tweak: Provided you have access, you may now use your ID to unlock the display + case. + - tweak: The fire axe cabinet and display case may now be repaired with the welder. + XDTM: + - rscadd: You can now grind slime extracts in a reagent grinder. If the slime was + unused it will result in slime jelly, while if used it will only output the + reagents inside the extract. + phil235: + - rscadd: Visual effects appear on the target of an attack, similar to the item + attack effect. + - rscdel: You now only see a message in chat when witnessing someone else getting + attacked or hit by a bullet if you are close enough to the action. diff --git a/html/changelogs/AutoChangeLog-pr-20920.yml b/html/changelogs/AutoChangeLog-pr-20920.yml deleted file mode 100644 index b2fe972d8e2..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20920.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "TheCarlSaganExpress" -delete-after: True -changes: - - tweak: "Provided you have access, you may now use your ID to unlock the display case." - - tweak: "The fire axe cabinet and display case may now be repaired with the welder." diff --git a/html/changelogs/AutoChangeLog-pr-20932.yml b/html/changelogs/AutoChangeLog-pr-20932.yml deleted file mode 100644 index c1151bff267..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20932.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Basilman" -delete-after: True -changes: - - rscadd: "A third martial art, CQC, has been added and is now available to nuke ops instead of sleeping carp" diff --git a/html/changelogs/AutoChangeLog-pr-20933.yml b/html/changelogs/AutoChangeLog-pr-20933.yml deleted file mode 100644 index c6ad893dccf..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20933.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "XDTM" -delete-after: True -changes: - - rscadd: "You can now grind slime extracts in a reagent grinder. If the slime was unused it will result in slime jelly, while if used it will only output the reagents inside the extract." diff --git a/html/changelogs/AutoChangeLog-pr-20962.yml b/html/changelogs/AutoChangeLog-pr-20962.yml deleted file mode 100644 index 17df0623528..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20962.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "phil235" -delete-after: True -changes: - - rscadd: "Visual effects appear on the target of an attack, similar to the item attack effect." - - rscdel: "You now only see a message in chat when witnessing someone else getting attacked or hit by a bullet if you are close enough to the action." diff --git a/html/changelogs/AutoChangeLog-pr-20985.yml b/html/changelogs/AutoChangeLog-pr-20985.yml deleted file mode 100644 index 8d3a0ba7cac..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20985.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MrStonedOne" -delete-after: True -changes: - - experiment: "Byond 511 beta users may now choose their own FPS. This will apply to animations and other client side only effects. Find it in your game preferences." diff --git a/html/changelogs/AutoChangeLog-pr-20996.yml b/html/changelogs/AutoChangeLog-pr-20996.yml deleted file mode 100644 index e4f1aa3d5e0..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20996.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Shadowlight213" -delete-after: True -changes: - - bugfix: "fixed removing modular computer components" diff --git a/html/changelogs/AutoChangeLog-pr-21022.yml b/html/changelogs/AutoChangeLog-pr-21022.yml deleted file mode 100644 index d3f73f326e3..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21022.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Kor" -delete-after: True -changes: - - rscadd: "Added sloths to cargobay on Box and Meta" From 499cb6c7dbb3d415ddcac7f26c9d0a3a440c1623 Mon Sep 17 00:00:00 2001 From: lordpidey Date: Tue, 18 Oct 2016 02:45:45 -0400 Subject: [PATCH 08/15] Minor devil fixes (#20770) * Replaces OBLIGATION_DRINK with a much more appropriate fiddle reference Attempting to clone soulsellers no longer works. Fun things happen if you try. Fireproof paper no longer becomes unreadable on burning. Made a generic "Conjure item" spell as a superclass for the summon pitchforks. These spells summon/unsummon an item directly into your hand. You can no longer spam ghosts with the infernal revival contract. * Adds the sprites for the golden violin * Fixes compile error. * Small changes for AnturK * I speel gud. --- code/__DEFINES/contracts.dm | 2 +- code/datums/mind.dm | 33 ++++++++-------- code/game/gamemodes/devil/devilinfo.dm | 18 +++++---- code/game/machinery/cloning.dm | 22 ++++++++--- .../game/objects/items/devices/instruments.dm | 9 ++++- code/modules/paperwork/contract.dm | 9 +++++ code/modules/paperwork/paper.dm | 5 ++- code/modules/spells/spell_types/conjure.dm | 28 ++++++++++++++ code/modules/spells/spell_types/devil.dm | 36 +++++++----------- icons/mob/actions.dmi | Bin 90778 -> 91165 bytes icons/mob/inhands/items_lefthand.dmi | Bin 122757 -> 123383 bytes icons/mob/inhands/items_righthand.dmi | Bin 120445 -> 121119 bytes icons/obj/musician.dmi | Bin 2911 -> 3108 bytes 13 files changed, 107 insertions(+), 55 deletions(-) diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm index cba98a29b24..629493cc603 100644 --- a/code/__DEFINES/contracts.dm +++ b/code/__DEFINES/contracts.dm @@ -15,7 +15,7 @@ #define BANE_TOOLBOX "toolbox" #define OBLIGATION_FOOD "food" -#define OBLIGATION_DRINK "drink" +#define OBLIGATION_FIDDLE "fiddle" #define OBLIGATION_GREET "greet" #define OBLIGATION_PRESENCEKNOWN "presenceknown" #define OBLIGATION_SAYNAME "sayname" diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f5fe92b9316..19b8ce2ebd4 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1101,21 +1101,24 @@ if("clear") if(src in ticker.mode.devils) if(istype(current,/mob/living/carbon/true_devil/)) - usr << "This cannot be used on true or arch-devils." - else - ticker.mode.devils -= src - special_role = null - current << "Your infernal link has been severed! You are no longer a devil!" - RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt) - RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_pitchfork) - message_admins("[key_name_admin(usr)] has de-devil'ed [current].") - devilinfo = null - if(issilicon(current)) - var/mob/living/silicon/S = current - S.clear_law_sixsixsix(current) - log_admin("[key_name(usr)] has de-devil'ed [current].") + if(devilinfo) + devilinfo.regress_blood_lizard() + else + usr << "Something went wrong with removing the devil, we were unable to find an attached devilinfo.." + ticker.mode.devils -= src + special_role = null + current << "Your infernal link has been severed! You are no longer a devil!" + RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt) + RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork) + RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin) + message_admins("[key_name_admin(usr)] has de-devil'ed [current].") + devilinfo = null + if(issilicon(current)) + var/mob/living/silicon/S = current + S.clear_law_sixsixsix(current) + log_admin("[key_name(usr)] has de-devil'ed [current].") else if(src in ticker.mode.sintouched) ticker.mode.sintouched -= src message_admins("[key_name_admin(usr)] has de-sintouch'ed [current].") diff --git a/code/game/gamemodes/devil/devilinfo.dm b/code/game/gamemodes/devil/devilinfo.dm index 313843d580b..1cbc3fe28fa 100644 --- a/code/game/gamemodes/devil/devilinfo.dm +++ b/code/game/gamemodes/devil/devilinfo.dm @@ -17,7 +17,7 @@ var/global/list/allDevils = list() var/global/list/lawlorify = list ( LORE = list( OBLIGATION_FOOD = "This devil seems to always offer it's victims food before slaughtering them.", - OBLIGATION_DRINK = "This devil seems to always offer it's victims a drink before slaughtering them.", + OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.", OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.", OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.", OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", @@ -47,7 +47,7 @@ var/global/list/lawlorify = list ( ), LAW = list( OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.", - OBLIGATION_DRINK = "When not acting in self defense, you must always offer your victim drink before harming them.", + OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.", OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.", OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.", OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.", @@ -128,7 +128,7 @@ var/global/list/lawlorify = list ( return preTitle + title + mainName + suffix /proc/randomdevilobligation() - return pick(OBLIGATION_FOOD, OBLIGATION_DRINK, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) + return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) /proc/randomdevilban() return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) @@ -289,7 +289,7 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/remove_spells() for(var/X in owner.spell_list) var/obj/effect/proc_holder/spell/S = X - if(!istype(S, /obj/effect/proc_holder/spell/targeted/summon_contract)) + if(!istype(S, /obj/effect/proc_holder/spell/targeted/summon_contract) && !istype(S, /obj/effect/proc_holder/spell/targeted/conjure_item/violin)) owner.RemoveSpell(S) /datum/devilinfo/proc/give_summon_contract() @@ -299,26 +299,28 @@ var/global/list/lawlorify = list ( /datum/devilinfo/proc/give_base_spells(give_summon_contract = 0) remove_spells() owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) if(give_summon_contract) give_summon_contract() + if (obligation == OBLIGATION_FIDDLE) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null)) /datum/devilinfo/proc/give_lizard_spells() remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) /datum/devilinfo/proc/give_true_spells() remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork/greater(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null)) /datum/devilinfo/proc/give_arch_spells() remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork/ascended(null)) + owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended(null)) owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) /datum/devilinfo/proc/beginResurrectionCheck(mob/living/body) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index e82965faa41..8e34e987413 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -103,13 +103,10 @@ /obj/machinery/clonepod/examine(mob/user) ..() - if (isnull(occupant) || !is_operational()) - return - if ((!isnull(occupant)) && (occupant.stat != DEAD)) + if(mess) + user << "It's filled with blood and viscera. You swear you can see it moving..." + if (is_operational() && (!isnull(occupant)) && (occupant.stat != DEAD)) user << "Current clone cycle is [round(get_completion())]% complete." - else if(mess) - user << "It's filled with blood and vicerea. You swear you can see \ - it moving..." /obj/machinery/clonepod/proc/get_completion() . = (100 * ((occupant.health + 100) / (heal_level + 100))) @@ -136,6 +133,12 @@ var/mob/dead/observer/G = clonemind.get_ghost() if(!G) return FALSE + if(clonemind.damnation_type) //Can't clone the damned. + addtimer(0, "horrifyingsound", src) + mess = 1 + icon_state = "pod_g" + update_icon() + return FALSE attempting = TRUE //One at a time!! locked = TRUE @@ -369,6 +372,13 @@ locked = FALSE go_out() +/obj/machinery/clonepod/proc/horrifyingsound() + for(var/i in 1 to 5) + playsound(loc,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, rand(0.95,1.05)) + sleep(1) + sleep(10) + playsound(loc,'sound/hallucinations/wail.ogg',100,1) + /obj/machinery/clonepod/deconstruct(disassembled = TRUE) if(occupant) locked = FALSE diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index 681c85e10e8..242bb7bfd91 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -51,6 +51,13 @@ hitsound = "swing_hit" instrumentId = "violin" +/obj/item/device/instrument/violin/golden + name = "golden violin" + desc = "A golden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" + icon_state = "golden_violin" + item_state = "golden_violin" + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF + /obj/item/device/instrument/guitar name = "guitar" desc = "It's made of wood and has bronze strings." @@ -71,4 +78,4 @@ force = 12 attack_verb = list("played metal on", "shredded", "crashed", "smashed") hitsound = 'sound/weapons/stringsmash.ogg' - instrumentId = "eguitar" \ No newline at end of file + instrumentId = "eguitar" diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 4e22783a969..83fd3ff9abc 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -78,6 +78,7 @@ /obj/item/weapon/paper/contract/infernal/revive name = "paper- contract of resurrection" contractType = CONTRACT_REVIVE + var/cooldown = FALSE /obj/item/weapon/paper/contract/infernal/knowledge name = "paper- contract for knowledge" @@ -203,6 +204,10 @@ /obj/item/weapon/paper/contract/infernal/revive/attack(mob/M, mob/living/user) if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind) + if (cooldown) + user << "Give [M] a chance to think through the contract, don't rush him." + return 0 + cooldown = TRUE var/mob/living/carbon/human/H = M var/mob/dead/observer/ghost = H.get_ghost() var/response = "No" @@ -220,9 +225,13 @@ H.fakefire() FulfillContract(H, 1)//Revival contracts are always signed in blood addtimer(H, "fakefireextinguish",5,TRUE) + addtimer(src,"resetcooldown",300,TRUE) else ..() +/obj/item/weapon/paper/contract/infernal/revive/proc/resetcooldown() + cooldown = FALSE + /obj/item/weapon/paper/contract/infernal/proc/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) signed = 1 diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index a123a8f07a9..f82564d27c7 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -341,8 +341,9 @@ /obj/item/weapon/paper/fire_act(exposed_temperature, exposed_volume) ..() - icon_state = "paper_onfire" - info = "[stars(info)]" + if(!(resistance_flags & FIRE_PROOF)) + icon_state = "paper_onfire" + info = "[stars(info)]" /obj/item/weapon/paper/extinguish() diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 89b143fcffc..1e528b0ed7e 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -50,3 +50,31 @@ summon_amt = 10 range = 3 newVars = list("emagged" = 2, "remote_disabled" = 1,"shoot_sound" = 'sound/weapons/laser.ogg',"projectile" = /obj/item/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot") + +/obj/effect/proc_holder/spell/targeted/conjure_item + name = "Summon weapon" + desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it. Summons into hand if possible." + invocation_type = "none" + include_user = 1 + range = -1 + clothes_req = 0 + var/obj/item/item + var/item_type = /obj/item/weapon/banhammer + school = "conjuration" + charge_max = 150 + cooldown_min = 10 + +/obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr) + if (item) + qdel(item) + item = null + else + for(var/mob/living/carbon/C in targets) + if(C.drop_item()) + item = new item_type + C.put_in_hands(item) + +/obj/effect/proc_holder/spell/targeted/conjure_item/Destroy() + if(item) + qdel(item) + return ..() diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index cd00b67776b..0e5fd60e666 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -1,12 +1,11 @@ -/obj/effect/proc_holder/spell/targeted/summon_pitchfork +/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork name = "Summon Pitchfork" desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork." invocation_type = "none" include_user = 1 range = -1 clothes_req = 0 - var/obj/item/weapon/twohanded/pitchfork/demonic/pitchfork - var/pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/ + item_type = /obj/item/weapon/twohanded/pitchfork/demonic school = "conjuration" charge_max = 150 @@ -14,27 +13,20 @@ action_icon_state = "pitchfork" action_background_icon_state = "bg_demon" -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/cast(list/targets, mob/user = usr) - if (pitchfork) - qdel(pitchfork) - else - for(var/mob/living/carbon/C in targets) - if(C.drop_item()) - pitchfork = new pitchfork_type - C.put_in_hands(pitchfork) +/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater + item_type = /obj/item/weapon/twohanded/pitchfork/demonic/greater -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/Destroy() - if(pitchfork) - qdel(pitchfork) - pitchfork = null - return ..() - -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/greater - pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/greater - -/obj/effect/proc_holder/spell/targeted/summon_pitchfork/ascended - pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/ascended +/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended + item_type = /obj/item/weapon/twohanded/pitchfork/demonic/ascended +/obj/effect/proc_holder/spell/targeted/conjure_item/violin + item_type = /obj/item/device/instrument/violin/golden + desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin." + invocation_type = "whisper" + invocation = "I aint have this much fun since Georgia." + action_icon_state = "golden_violin" + name = "Summon golden violin" + action_background_icon_state = "bg_demon" /obj/effect/proc_holder/spell/targeted/summon_contract name = "Summon infernal contract" diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 91bc9ca9828c3f58a23ebf504a5ebeee0a297fc6..9e8bceda4d80e23ccc9246b43fabe119c160a358 100644 GIT binary patch delta 13371 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 delta 18804 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 H8uY&ad}z;{ diff --git a/icons/obj/musician.dmi b/icons/obj/musician.dmi index ea1b0b5a485354a0ed02a2c941df3906acd1b1a4..adffb390ad907c3400ec9dcef661abc369ec9fad 100644 GIT binary patch delta 2400 zcmV-m37_`g7Ni)EBmv5?C58e6|Nj7!s{$kg|I7fB&jKEQ$@D3e00001bW%=J06^y0 zW&i*Hn|f4ObVOxyV{&P5bZKvH004NLjnK^s!Y~j7;B)d6p}mWLS1-~cJ=j-}NY-Sr z*_9;L*Eh7_(d0G*9}G;Z&i!Q=Rd*fa3?U+uI;rDkE5!#*a=9G#QaC{C(pqBD336;+ zsEHdX42GD0`%a2S&>q(OQyvLDv#o~rz)zqeU)C$_j67kP**7K~iVP~9<;eiu{*Sk+ zAG_uLF9A|HSqAsbEQWuA^mQ-oC z8_6h1PYzM8&y@BZF!VPWnj(Qm5g8l*Vzehrm zXn=ys?g+|z=U#i-$C=OVRdJ8<$t@;n*OxNE=xT;ezwb4!GOPZ$b~$Q`7E^7QFj1}I=)U?=Orn6m3q z`h<@kBvT?j;aG&^wSYXQ?*a7nUp7n}jE%bvE++zfjmO87F_I5yET2jwB1%Mc0ZiXD z-~v*k#KE|yiBCWQ0Ji|+ET0zgE&Xs@FyI1)se|zytsbxva5df_?>8Vi*u{?_lxUcL ztFe%u2n|OP5^Y&Q`J0=O8Ix$t)j#(rA8y z8|4ECF-M=ixw(Ndf&(Yg@_ayqH*-@Lq3gObsRm^;8N75Yp4IgngmR^tmx;sQLLrmM zbPF&P!z7WtN;M=NGBmn&plgbM1?rY%YI{^Gtz+;2!YFJ~u2>ZHbEZZBCIU1gJ6W3A zEmo?qX$Qq8mw5u{TN*V0fW7-HV{-r06bE1qHr0dT)#Yn=f)3II0DrQ3)wHTjmUiaOIWG8$MGKESeQz>jnD3+gbqgx() zb{HQFQ_EVU69BNRbRNU2UnrnBTng<8#b-Xt(_fvG-5>@`!v*B?mip{ci3e0Dpwb>t zd`|hfp7!QY8dMDgV3Xm0LvF8X<@4(P>!&&d*tQMzdEWE6`7~(*NQcwJ3pm(o<#n~x zp#$4~!3$qheDO=f`PUB64j3??^b_^~0D=P~&>jTnzw~7GEq{E9^n~%-sC!?7W7BGSh~C<3LmOd}%5#tb+=U zX(hnG>t6qc={LTqJpE>y2h1IsnVp%RnbqL&of1KlHC6SmgFpw+-M75;ux*#$HvRT@ z2mpO<{>YKJ*|`}5M@Vx^q^Tu-C1+Ya5DE4>-}UaB-(xSl*Pg!ReeV|mhvw&Ij?5Tj zT47!pz=9rd3yscy&(WiFmU#VJZ#(#b4<55`zr()sLm##md4LIoLk8J}bR-xIkiUy_ zKx$LLov0%27WPLz`mv9H;*-ZdW!s-4CET>}GF@>K}n_aZ!vD-=-4 z@SBDGxzB&$c=?N8`tm)8zw*_u2?lVhKm;E4dN!9cH2BGXU5S9nlD9;}09$Aoeks^r z|HiR}d&|eZ`K@n%$F>)F18g%Q3=#my8IuIS?M05T1M&jC`@QeqbNt@&4}SO~d(o#) z0CcOPp#jA-^8nyhGA$8vAe89G_x3kU_3Ph%{Pw|z9=0X=iiuB54;)jsTo@^s=>cGSL7H4Rz=Hj|-{1X*KmO^@e-Rt( z5KK}PI!PuMtrsJ9T2?B409dg9`nSLTYLIP`e-i?i+{T(+2_|79|7Z3DqMuwHtpygaQeF_qYJbcDjJk_JIjS^L~}{-L&b~ zmd!@BDq$#F`Tao9KXHO1;G12o);kN;6H9fDu+`rWe1MbxS~|r62&2{;bo z3ANrisGd%q5}M2$^ri>ZGiU1675+O{y$68mqscR(elL4aJ$?2OpMDP)TJ=oQS0AFk z3MHz4t!|l6ee|rqKA^w4isEot-5R0#@1(3g0H{$wZEFD8{PYe`uS@5rSAcrGv3%mJ z{P`(?_MkicI>;xNlmDsL1N0R-K{!cW$*(k)mX=rkn_R93-b6NQ_~}x9t=U{(I4ZrFE!VJ&T2EdcEg_h}TDF6Z) z>y0EDSP2HyoGI#fE!T08p?#d9 z3a}JBql$Z6)@oe>a5*fsG0-}YyVNJ^p^X6#p*wvfwAXhD-5$xo=YUA)NdNx}6<#Fd SI6GCV3_%$jHdr+S-DGg4^5Mu&}U( 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 A^#A|> From 9c5a63dbbb2b464c4bc15492d29538659e5be9c1 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Tue, 18 Oct 2016 06:45:46 +0000 Subject: [PATCH 09/15] Automatic changelog generation for PR #20770 [ci skip] --- html/changelogs/AutoChangeLog-pr-20770.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-20770.yml diff --git a/html/changelogs/AutoChangeLog-pr-20770.yml b/html/changelogs/AutoChangeLog-pr-20770.yml new file mode 100644 index 00000000000..7585001537e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-20770.yml @@ -0,0 +1,7 @@ +author: "lordpidey" +delete-after: True +changes: + - rscadd: "There is a new potential obligation for devils to have. Musical duels. Ask your nearest devil for a musical duel, there's a 14% chance he's obligated to do it." + - rscdel: "Removed the old offering a drink obligation for devils, it overlapped too much with the food obligation." + - tweak: "Trying to clone people who've sold their soul now results in FUN." + - tweak: "Devils can no longer spam ghosts with revival contracts." From 5047dd71455a7f48d06884a69541f1730388c92c Mon Sep 17 00:00:00 2001 From: MrPerson Date: Tue, 18 Oct 2016 02:41:23 -0700 Subject: [PATCH 10/15] Plane master handling + new chemical Rotatium (#20707) * Plane master handling + new chemical Rotatium A whole system to create, store, and access screen master objects from the hud. In case anybody actually wants to do anything relevant with them. Which will probably be me but whatever. Moves things out to some planes that make sense. click catcher -99 game 0 lighting 15 fullscreen 18 HUD 19 above HUD 20 Rotatium is more of a demonstration than something I really really love, but it is kinda neat so here you go. It rocks the game plane and lighting planes back and forth and also does light toxin damage. The longer it effects you, the stronger the rocking gets. No pictures right now, I'll get some later. Sorry. * Pay no attention to the commit behind the curtain * Updates travis to 1346, the stable version for 510 for linux --- code/__DEFINES/layers.dm | 25 +++++++++++------ code/__HELPERS/unsorted.dm | 12 +++++--- code/_onclick/_defines.dm | 1 - code/_onclick/click.dm | 14 ++++------ code/_onclick/hud/alert.dm | 3 ++ code/_onclick/hud/blob_overmind.dm | 1 + code/_onclick/hud/devil.dm | 2 ++ code/_onclick/hud/fullscreen.dm | 5 ++++ code/_onclick/hud/hud.dm | 12 ++++++++ code/_onclick/hud/plane_master.dm | 28 +++++++++++++++++++ code/_onclick/hud/robot.dm | 1 + code/_onclick/hud/screen_objects.dm | 9 ++++++ code/_onclick/telekinesis.dm | 1 + code/datums/action.dm | 7 +++-- code/game/atoms.dm | 3 +- .../gamemodes/devil/true_devil/inventory.dm | 2 ++ code/game/gamemodes/sandbox/h_sandbox.dm | 8 ++++++ code/game/machinery/overview.dm | 2 ++ .../objects/items/devices/chameleonproj.dm | 1 + .../items/weapons/grenades/ghettobomb.dm | 3 ++ .../objects/items/weapons/storage/storage.dm | 8 +++++- code/modules/admin/topic.dm | 3 ++ .../components/unary_devices/vent_pump.dm | 2 ++ .../components/unary_devices/vent_scrubber.dm | 2 ++ code/modules/client/client_procs.dm | 1 - code/modules/clothing/under/ties.dm | 2 ++ code/modules/events/anomaly_bluespace.dm | 1 + code/modules/flufftext/Hallucination.dm | 1 + code/modules/lighting/lighting_system.dm | 1 + code/modules/mining/equipment.dm | 1 + code/modules/mining/machine_redemption.dm | 1 + code/modules/mob/dead/observer/observer.dm | 3 ++ code/modules/mob/inventory.dm | 3 ++ code/modules/mob/living/carbon/carbon.dm | 2 ++ code/modules/mob/living/carbon/inventory.dm | 1 + .../mob/living/silicon/robot/inventory.dm | 3 ++ .../modules/mob/living/silicon/robot/robot.dm | 1 + .../mob/living/simple_animal/bot/mulebot.dm | 1 + .../simple_animal/friendly/drone/inventory.dm | 1 + .../friendly/drone/visuals_icons.dm | 2 ++ .../living/simple_animal/guardian/guardian.dm | 3 ++ .../mob/living/simple_animal/simple_animal.dm | 2 ++ code/modules/mob/living/ventcrawling.dm | 2 +- code/modules/mob/mob_helpers.dm | 4 +++ code/modules/mob/transform_procs.dm | 1 + code/modules/power/singularity/collector.dm | 1 + .../chemistry/reagents/toxin_reagents.dm | 27 ++++++++++++++++++ .../reagents/chemistry/recipes/toxins.dm | 7 +++++ tgstation.dme | 2 +- 49 files changed, 200 insertions(+), 29 deletions(-) delete mode 100644 code/_onclick/_defines.dm create mode 100644 code/_onclick/hud/plane_master.dm diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 0d0b54b8ee0..64866abc94e 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -1,6 +1,9 @@ -//Defines for atom layers +//Defines for atom layers and planes //KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE +#define CLICKCATCHER_PLANE -99 + +#define GAME_PLANE 0 //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define #define MID_TURF_LAYER 2.02 #define HIGH_TURF_LAYER 2.03 @@ -47,14 +50,20 @@ #define AREA_LAYER 10 #define MASSIVE_OBJ_LAYER 11 #define POINT_LAYER 12 + +#define LIGHTING_PLANE 15 #define LIGHTING_LAYER 15 //HUD layer defines -#define COLORED_VISION_LAYER 17.8 -#define FLASH_LAYER 17.9 -#define FULLSCREEN_LAYER 18 -#define UI_DAMAGE_LAYER 18.1 -#define BLIND_LAYER 18.2 -#define CRIT_LAYER 18.3 + +#define FULLSCREEN_PLANE 18 +#define FLASH_LAYER 18 +#define FULLSCREEN_LAYER 18.1 +#define UI_DAMAGE_LAYER 18.2 +#define BLIND_LAYER 18.3 +#define CRIT_LAYER 18.4 + +#define HUD_PLANE 19 #define HUD_LAYER 19 -#define ABOVE_HUD_LAYER 19.1 +#define ABOVE_HUD_PLANE 20 +#define ABOVE_HUD_LAYER 20 diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index a4427a96e52..ca5b756c676 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -926,25 +926,29 @@ var/list/WALLITEMS_INVERSE = list( return "white" /proc/params2turf(scr_loc, turf/origin) + if(!scr_loc) + return null var/tX = splittext(scr_loc, ",") var/tY = splittext(tX[2], ":") var/tZ = origin.z tY = tY[1] tX = splittext(tX[1], ":") tX = tX[1] - tX = max(1, min(world.maxx, origin.x + (text2num(tX) - (world.view + 1)))) - tY = max(1, min(world.maxy, origin.y + (text2num(tY) - (world.view + 1)))) + tX = Clamp(origin.x + text2num(tX) - world.view + 1, 1, world.maxx) + tY = Clamp(origin.y + text2num(tY) - world.view + 1, 1, world.maxy) return locate(tX, tY, tZ) /proc/screen_loc2turf(text, turf/origin) + if(!text) + return null var/tZ = splittext(text, ",") var/tX = splittext(tZ[1], "-") var/tY = text2num(tX[2]) tX = splittext(tZ[2], "-") tX = text2num(tX[2]) tZ = origin.z - tX = max(1, min(origin.x + 7 - tX, world.maxx)) - tY = max(1, min(origin.y + 7 - tY, world.maxy)) + tX = Clamp(origin.x + 7 - tX, 1, world.maxx) + tY = Clamp(origin.y + 7 - tY, 1, world.maxy) return locate(tX, tY, tZ) /proc/IsValidSrc(datum/D) diff --git a/code/_onclick/_defines.dm b/code/_onclick/_defines.dm deleted file mode 100644 index 3c76c35e807..00000000000 --- a/code/_onclick/_defines.dm +++ /dev/null @@ -1 +0,0 @@ -#define CLICKCATCHER_PLANE -99 \ No newline at end of file diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 3300602476c..a6189669b74 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -346,15 +346,11 @@ icon_state = "click_catcher" plane = CLICKCATCHER_PLANE mouse_opacity = 2 - screen_loc = "CENTER-7,CENTER-7" + screen_loc = "CENTER" -/obj/screen/click_catcher/proc/MakeGreed() - . = list() - for(var/i = 0, i<15, i++) - for(var/j = 0, j<15, j++) - var/obj/screen/click_catcher/CC = new() - CC.screen_loc = "NORTH-[i],EAST-[j]" - . += CC +/obj/screen/click_catcher/New() + ..() + transform = matrix(200, 0, 0, 0, 200, 0) /obj/screen/click_catcher/Click(location, control, params) var/list/modifiers = params2list(params) @@ -362,7 +358,7 @@ var/mob/living/carbon/C = usr C.swap_hand() else - var/turf/T = screen_loc2turf(screen_loc, get_turf(usr)) + var/turf/T = params2turf(modifiers["screen-loc"], get_turf(usr)) if(T) T.Click(location, control, params) . = 1 \ No newline at end of file diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 2e99889a323..b9ca95d4439 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -37,9 +37,12 @@ if(new_master) var/old_layer = new_master.layer + var/old_plane = new_master.plane new_master.layer = FLOAT_LAYER + new_master.plane = FLOAT_PLANE alert.overlays += new_master new_master.layer = old_layer + new_master.plane = old_plane alert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts() alert.master = new_master else diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index a375374ba22..c3cc3851dc4 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -132,6 +132,7 @@ blobpwrdisplay.screen_loc = ui_health blobpwrdisplay.mouse_opacity = 0 blobpwrdisplay.layer = ABOVE_HUD_LAYER + blobpwrdisplay.plane = ABOVE_HUD_PLANE infodisplay += blobpwrdisplay healths = new /obj/screen/healths/blob() diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm index ec2597b1975..ee01b27097b 100644 --- a/code/_onclick/hud/devil.dm +++ b/code/_onclick/hud/devil.dm @@ -25,6 +25,7 @@ using.icon_state = "swap_1_m" using.screen_loc = ui_swaphand_position(owner,1) using.layer = HUD_LAYER + using.plane = HUD_PLANE static_inventory += using using = new /obj/screen/inventory() @@ -33,6 +34,7 @@ using.icon_state = "swap_2" using.screen_loc = ui_swaphand_position(owner,2) using.layer = HUD_LAYER + using.plane = HUD_PLANE static_inventory += using zone_select = new /obj/screen/zone_sel() diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 9ceaa67bf6a..5461276f1b1 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -60,6 +60,7 @@ icon_state = "default" screen_loc = "CENTER-7,CENTER-7" layer = FULLSCREEN_LAYER + plane = FULLSCREEN_PLANE mouse_opacity = 0 var/severity = 0 @@ -71,18 +72,22 @@ /obj/screen/fullscreen/brute icon_state = "brutedamageoverlay" layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/oxy icon_state = "oxydamageoverlay" layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/crit icon_state = "passage" layer = CRIT_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/blind icon_state = "blackimageoverlay" layer = BLIND_LAYER + plane = FULLSCREEN_PLANE /obj/screen/fullscreen/impaired icon_state = "impairedoverlay" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 0dfb1dbb14a..fa29b7e2cec 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -42,6 +42,7 @@ var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...) var/list/inv_slots[slots_amt] // /obj/screen/inventory objects, ordered by their slot ID. var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object + var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle var/action_buttons_hidden = 0 @@ -55,6 +56,9 @@ hide_actions_toggle = new hide_actions_toggle.InitialiseIcon(mymob) hand_slots = list() + for(var/mytype in subtypesof(/obj/screen/plane_master)) + var/obj/screen/plane_master/instance = new mytype() + plane_masters["[instance.plane]"] = instance /datum/hud/Destroy() if(mymob.hud_used == src) @@ -108,6 +112,11 @@ deity_follower_display = null nightvisionicon = null + if(plane_masters.len) + for(var/thing in plane_masters) + qdel(plane_masters[thing]) + plane_masters.Cut() + if(screenoverlays.len) for(var/thing in screenoverlays) qdel(thing) @@ -184,6 +193,9 @@ if(infodisplay.len) screenmob.client.screen -= infodisplay + if(plane_masters.len) + for(var/thing in plane_masters) + screenmob.client.screen += plane_masters[thing] hud_version = display_hud_version persistant_inventory_update(screenmob) mymob.update_action_buttons(1) diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm new file mode 100644 index 00000000000..eda44bda065 --- /dev/null +++ b/code/_onclick/hud/plane_master.dm @@ -0,0 +1,28 @@ +/obj/screen/plane_master + screen_loc = "CENTER" + icon_state = "blank" + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + blend_mode = BLEND_OVERLAY + +/obj/screen/plane_master/New() + if(blend_mode == BLEND_MULTIPLY) + //What is this? Read http://www.byond.com/forum/?post=2141928 + var/image/backdrop = image('icons/mob/screen_gen.dmi', "black") + backdrop.transform = matrix(200, 0, 0, 0, 200, 0) + backdrop.layer = BACKGROUND_LAYER + backdrop.blend_mode = BLEND_OVERLAY + overlays += backdrop + ..() + +/obj/screen/plane_master/game_world + name = "game world plane master" + plane = GAME_PLANE + blend_mode = BLEND_OVERLAY + +/obj/screen/plane_master/lighting + name = "lighting plane master" + plane = LIGHTING_PLANE + blend_mode = BLEND_OVERLAY +// blend_mode = BLEND_MULTIPLY +// color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,0, 0.1,0.1,0.1,0) + mouse_opacity = 0 diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index 93292a2ee4a..15a42655b4c 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -222,6 +222,7 @@ else A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7" A.layer = ABOVE_HUD_LAYER + A.plane = ABOVE_HUD_PLANE x++ if(x == 4) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index dc40fa92d96..20d98bd9ebf 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -10,6 +10,7 @@ name = "" icon = 'icons/mob/screen_gen.dmi' layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF appearance_flags = APPEARANCE_UI var/obj/master = null //A reference to the object in the slot. Grabs or items, generally. @@ -33,6 +34,7 @@ /obj/screen/swap_hand layer = HUD_LAYER + plane = HUD_PLANE name = "swap hand" /obj/screen/swap_hand/Click() @@ -81,6 +83,7 @@ var/icon_empty // Icon when empty. For now used only by humans. var/icon_full // Icon when contains an item. For now used only by humans. layer = HUD_LAYER + plane = HUD_PLANE /obj/screen/inventory/Click() // At this point in client Click() code we have passed the 1/10 sec check and little else @@ -169,6 +172,7 @@ icon = 'icons/mob/screen_midnight.dmi' icon_state = "act_drop" layer = HUD_LAYER + plane = HUD_PLANE /obj/screen/drop/Click() usr.drop_item_v() @@ -306,6 +310,7 @@ icon = 'icons/mob/screen_midnight.dmi' icon_state = "act_resist" layer = HUD_LAYER + plane = HUD_PLANE /obj/screen/resist/Click() if(isliving(usr)) @@ -422,6 +427,7 @@ blend_mode = BLEND_ADD screen_loc = "WEST,SOUTH to EAST,NORTH" layer = FLASH_LAYER + plane = FULLSCREEN_PLANE /obj/screen/damageoverlay icon = 'icons/mob/screen_full.dmi' @@ -431,6 +437,7 @@ screen_loc = "CENTER-7,CENTER-7" mouse_opacity = 0 layer = UI_DAMAGE_LAYER + plane = FULLSCREEN_PLANE /obj/screen/healths name = "health" @@ -489,6 +496,7 @@ /obj/screen/wheel name = "wheel" layer = HUD_LAYER + plane = HUD_PLANE icon_state = "" screen_loc = null //if you make a new wheel, remember to give it a screen_loc var/list/buttons_names = list() //list of the names for each button, its length is the amount of buttons. @@ -585,6 +593,7 @@ name = "default wheel button" screen_loc = "8,8" layer = HUD_LAYER + plane = HUD_PLANE mouse_opacity = 2 var/obj/screen/wheel/wheel diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 7a606104350..89a23721df7 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -72,6 +72,7 @@ var/const/tk_maxrange = 15 //item_state = null w_class = 10 layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE var/last_throw = 0 var/atom/movable/focus = null diff --git a/code/datums/action.dm b/code/datums/action.dm index ed4f2416701..34aa8205b0e 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -138,10 +138,13 @@ ..(current_button) else if(target) var/obj/item/I = target - var/old = I.layer + var/old_layer = I.layer + var/old_plane = I.plane I.layer = FLOAT_LAYER //AAAH + I.plane = FLOAT_PLANE //^ what that guy said current_button.add_overlay(I) - I.layer = old + I.layer = old_layer + I.plane = old_plane /datum/action/item_action/toggle_light name = "Toggle Light" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index bb874f8bed7..3b84518c182 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1,5 +1,6 @@ /atom layer = TURF_LAYER + plane = GAME_PLANE var/level = 2 var/flags = 0 var/list/fingerprints @@ -439,4 +440,4 @@ var/list/blood_splatter_icons = list() admin_spawned = TRUE /atom/proc/mech_melee_attack(obj/mecha/M) - return + return diff --git a/code/game/gamemodes/devil/true_devil/inventory.dm b/code/game/gamemodes/devil/true_devil/inventory.dm index ca417e09fbf..52feb42e289 100644 --- a/code/game/gamemodes/devil/true_devil/inventory.dm +++ b/code/game/gamemodes/devil/true_devil/inventory.dm @@ -23,6 +23,7 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER + r_hand.plane = ABOVE_HUD_PLANE r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand @@ -38,6 +39,7 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER + l_hand.plane = ABOVE_HUD_PLANE l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand if(hands_overlays.len) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index d13a9d588fd..aae7317c5f4 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -143,30 +143,38 @@ var/hsboxspawn = 1 if(P.wear_suit) P.wear_suit.loc = P.loc P.wear_suit.layer = initial(P.wear_suit.layer) + P.wear_suit.plane = initial(P.wear_suit.plane) P.wear_suit = null P.wear_suit = new/obj/item/clothing/suit/space(P) P.wear_suit.layer = ABOVE_HUD_LAYER + P.wear_suit.plane = ABOVE_HUD_PLANE P.update_inv_wear_suit() if(P.head) P.head.loc = P.loc P.head.layer = initial(P.head.layer) + P.head.plane = initial(P.head.plane) P.head = null P.head = new/obj/item/clothing/head/helmet/space(P) P.head.layer = ABOVE_HUD_LAYER + P.head.plane = ABOVE_HUD_PLANE P.update_inv_head() if(P.wear_mask) P.wear_mask.loc = P.loc P.wear_mask.layer = initial(P.wear_mask.layer) + P.wear_mask.plane = initial(P.wear_mask.plane) P.wear_mask = null P.wear_mask = new/obj/item/clothing/mask/gas(P) P.wear_mask.layer = ABOVE_HUD_LAYER + P.wear_mask.plane = ABOVE_HUD_PLANE P.update_inv_wear_mask() if(P.back) P.back.loc = P.loc P.back.layer = initial(P.back.layer) + P.back.plane = initial(P.back.plane) P.back = null P.back = new/obj/item/weapon/tank/jetpack/oxygen(P) P.back.layer = ABOVE_HUD_LAYER + P.back.plane = ABOVE_HUD_PLANE P.update_inv_back() P.internal = P.back P.update_internals_hud_icon(1) diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm index f955a12fdf6..708d6c8368d 100644 --- a/code/game/machinery/overview.dm +++ b/code/game/machinery/overview.dm @@ -179,6 +179,7 @@ qdel(J) H.icon = HI H.layer = ABOVE_HUD_LAYER + H.plane = ABOVE_HUD_PLANE usr.mapobjs += H #else @@ -297,6 +298,7 @@ H.icon = I qdel(I) H.layer = ABOVE_HUD_LAYER + H.plane = ABOVE_HUD_PLANE usr.mapobjs += H #endif diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index c1727274ae4..1e5e0baccdb 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -38,6 +38,7 @@ var/obj/temp = new/obj() temp.appearance = target.appearance temp.layer = initial(target.layer) // scanning things in your inventory + temp.plane = initial(target.plane) saved_appearance = temp.appearance /obj/item/device/chameleon/proc/toggle() diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index a72e63d7684..7a1c1835dac 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -34,9 +34,12 @@ var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents if(can) var/muh_layer = can.layer + var/muh_plane = can.plane can.layer = FLOAT_LAYER + can.plane = FLOAT_PLANE underlays += can can.layer = muh_layer + can.plane = muh_plane /obj/item/weapon/grenade/iedcasing/attack_self(mob/user) // diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index bd030784150..dda9c69aa43 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -166,6 +166,7 @@ for(var/obj/O in contents) O.screen_loc = "[cx],[cy]" O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE cx++ if(cx > mx) cx = tx @@ -185,6 +186,7 @@ ND.sample_object.screen_loc = "[cx]:16,[cy]:16" ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE cx++ if(cx > (4+cols)) cx = 4 @@ -195,6 +197,7 @@ O.screen_loc = "[cx]:16,[cy]:16" O.maptext = "" O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE cx++ if(cx > (4+cols)) cx = 4 @@ -358,6 +361,7 @@ var/mob/M = loc W.dropped(M) W.layer = initial(W.layer) + W.plane = initial(W.plane) W.loc = new_location if(usr) @@ -483,10 +487,12 @@ boxes.icon_state = "block" boxes.screen_loc = "7,7 to 10,8" boxes.layer = HUD_LAYER + boxes.plane = HUD_PLANE closer = new /obj/screen/close() closer.master = src closer.icon_state = "backpack_close" closer.layer = ABOVE_HUD_LAYER + closer.plane = ABOVE_HUD_PLANE orient2hud() @@ -521,4 +527,4 @@ /obj/item/weapon/storage/contents_explosion(severity, target) for(var/atom/A in contents) A.ex_act(severity, target) - CHECK_TICK \ No newline at end of file + CHECK_TICK diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 794fdd7883d..633bcbc3994 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1345,6 +1345,7 @@ if(I) I.loc = M.loc I.layer = initial(I.layer) + I.plane = initial(I.plane) I.dropped(M) M.Paralyse(5) @@ -1375,6 +1376,7 @@ if(I) I.loc = M.loc I.layer = initial(I.layer) + I.plane = initial(I.plane) I.dropped(M) M.Paralyse(5) @@ -1428,6 +1430,7 @@ if(I) I.loc = M.loc I.layer = initial(I.layer) + I.plane = initial(I.plane) I.dropped(M) if(ishuman(M)) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index 4422ec1fedf..8808513ad59 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -260,6 +260,7 @@ welded = 0 update_icon() pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE return 0 else return ..() @@ -290,6 +291,7 @@ welded = 0 update_icon() pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index b39fe29c0ff..43abe6ee607 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -353,6 +353,7 @@ welded = 0 update_icon() pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE return 0 else return ..() @@ -374,6 +375,7 @@ welded = 0 update_icon() pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir) + pipe_vision_img.plane = ABOVE_HUD_PLANE playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 1559c82c9f3..883fb4266ba 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -220,7 +220,6 @@ var/next_external_rsc = 0 if(!void) void = new() - void = void.MakeGreed() screen += void diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 4ea6592329f..0fa1d3b7b44 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -20,6 +20,7 @@ U.hastie = src loc = U layer = FLOAT_LAYER + plane = FLOAT_PLANE if(minimize_when_attached) transform *= 0.5 //halve the size so it doesn't overpower the under pixel_x += 8 @@ -45,6 +46,7 @@ pixel_x -= 8 pixel_y += 8 layer = initial(layer) + plane = initial(plane) U.cut_overlays() U.hastie = null diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index bcfc914bc75..3d77e6e6b12 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -66,6 +66,7 @@ blueeffect.icon = 'icons/effects/effects.dmi' blueeffect.icon_state = "shieldsparkles" blueeffect.layer = FLASH_LAYER + blueeffect.plane = FULLSCREEN_PLANE blueeffect.mouse_opacity = 0 M.client.screen += blueeffect sleep(20) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index de4ccc102e4..c14da947741 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -630,6 +630,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite if(slots_free.len) halitem.screen_loc = pick(slots_free) halitem.layer = ABOVE_HUD_LAYER + halitem.plane = ABOVE_HUD_PLANE switch(rand(1,6)) if(1) //revolver halitem.icon = 'icons/obj/guns/projectile.dmi' diff --git a/code/modules/lighting/lighting_system.dm b/code/modules/lighting/lighting_system.dm index e453e04ae64..97632e13043 100644 --- a/code/modules/lighting/lighting_system.dm +++ b/code/modules/lighting/lighting_system.dm @@ -237,6 +237,7 @@ icon = LIGHTING_ICON icon_state = LIGHTING_ICON_STATE layer = LIGHTING_LAYER + plane = LIGHTING_PLANE mouse_opacity = 0 blend_mode = BLEND_OVERLAY invisibility = INVISIBILITY_LIGHTING diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm index 4e26e3f8d8c..3a0140c80f8 100644 --- a/code/modules/mining/equipment.dm +++ b/code/modules/mining/equipment.dm @@ -417,6 +417,7 @@ for(var/turf/closed/mineral/M in minerals) var/turf/F = get_turf(M) var/image/I = image('icons/turf/smoothrocks.dmi', loc = F, icon_state = M.scan_state, layer = FLASH_LAYER) + I.plane = FULLSCREEN_PLANE C.images += I spawn(30) if(C) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index c49001fd7d7..c8606b07e1b 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -268,6 +268,7 @@ s.use(s.max_amount) s.loc = loc s.layer = initial(s.layer) + s.plane = initial(s.plane) /obj/machinery/mineral/ore_redemption/power_change() ..() diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 932def45a6a..44db183f45f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -334,9 +334,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp A.icon = ui_style2icon(client.prefs.UI_style) A.desc = message var/old_layer = source.layer + var/old_plane = source.plane source.layer = FLOAT_LAYER + source.plane = FLOAT_PLANE A.add_overlay(source) source.layer = old_layer + source.plane = old_plane src << "(Click to re-enter)" if(sound) src << sound(sound) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 2348aaa112f..ad183cc471f 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -159,6 +159,7 @@ I.loc = src held_items[hand_index] = I I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE I.equipped(src, slot_hands) if(I.pulledby) I.pulledby.stop_pulling() @@ -216,6 +217,7 @@ return FALSE I.forceMove(get_turf(src)) I.layer = initial(I.layer) + I.plane = initial(I.plane) I.dropped(src) return FALSE @@ -268,6 +270,7 @@ if(client) client.screen -= I I.layer = initial(I.layer) + I.plane = initial(I.plane) I.appearance_flags &= ~NO_CLIENT_COLOR I.forceMove(loc) I.dropped(src) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4aae3881bef..de8de331e04 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -323,6 +323,7 @@ W.dropped(src) if (W) W.layer = initial(W.layer) + W.plane = initial(W.plane) if (legcuffed) var/obj/item/weapon/W = legcuffed legcuffed = null @@ -334,6 +335,7 @@ W.dropped(src) if (W) W.layer = initial(W.layer) + W.plane = initial(W.plane) /mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) if(!I.loc || buckled) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index b1db784fb46..f6101d0d7e8 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -37,6 +37,7 @@ observe.client.screen -= I I.loc = src I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE I.appearance_flags |= NO_CLIENT_COLOR var/not_handled = FALSE switch(slot) diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 71aaaf15df1..aa890b2730a 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -50,6 +50,7 @@ O.mouse_opacity = initial(O.mouse_opacity) module_state_1 = O O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE O.screen_loc = inv1.screen_loc observer_screen_update(O,TRUE) contents += O @@ -61,6 +62,7 @@ O.mouse_opacity = initial(O.mouse_opacity) module_state_2 = O O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE O.screen_loc = inv2.screen_loc observer_screen_update(O,TRUE) contents += O @@ -72,6 +74,7 @@ O.mouse_opacity = initial(O.mouse_opacity) module_state_3 = O O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE O.screen_loc = inv3.screen_loc observer_screen_update(O,TRUE) contents += O diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 46a5ea5ce86..7830bea184b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -85,6 +85,7 @@ robot_modules_background = new() robot_modules_background.icon_state = "block" robot_modules_background.layer = HUD_LAYER //Objects that appear on screen are on layer ABOVE_HUD_LAYER, UI should be just below it. + robot_modules_background.plane = HUD_PLANE ident = rand(1, 999) update_icons() diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 4c11c6d04d3..dde4a1e2f15 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -408,6 +408,7 @@ var/global/mulebot_count = 0 load.loc = loc load.pixel_y = initial(load.pixel_y) load.layer = initial(load.layer) + load.plane = initial(load.plane) if(dirn) var/turf/T = loc var/turf/newT = get_step(T,dirn) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm index 44838adbe88..1437e77e56e 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm @@ -60,6 +60,7 @@ I.screen_loc = null // will get moved if inventory is visible I.loc = src I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE switch(slot) if(slot_head) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index ca5456e625c..95c18b53f40 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -41,6 +41,7 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER + r_hand.plane = ABOVE_HUD_PLANE r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand @@ -58,6 +59,7 @@ if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER + l_hand.plane = ABOVE_HUD_PLANE l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index d77708e0b2a..96f07b466d1 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -255,6 +255,7 @@ var/global/list/parasites = list() //all currently existing/living guardians I.loc = src I.equipped(src, slot) I.layer = ABOVE_HUD_LAYER + I.plane = ABOVE_HUD_PLANE /mob/living/simple_animal/hostile/guardian/proc/apply_overlay(cache_index) var/image/I = guardian_overlays[cache_index] @@ -283,6 +284,7 @@ var/global/list/parasites = list() //all currently existing/living guardians if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER + r_hand.plane = ABOVE_HUD_PLANE r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand @@ -297,6 +299,7 @@ var/global/list/parasites = list() //all currently existing/living guardians if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER + l_hand.plane = ABOVE_HUD_PLANE l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0375c8b2706..0be6d447f7e 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -515,10 +515,12 @@ var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) r_hand.layer = ABOVE_HUD_LAYER + r_hand.plane = ABOVE_HUD_PLANE r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) client.screen |= r_hand if(l_hand) l_hand.layer = ABOVE_HUD_LAYER + l_hand.plane = ABOVE_HUD_PLANE l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) client.screen |= l_hand diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index a63e9fad1fa..06e54ac94a4 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -93,7 +93,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/components/unary var/obj/machinery/atmospherics/A = X //all elements in totalMembers are necessarily of this type. if(!A.pipe_vision_img) A.pipe_vision_img = image(A, A.loc, layer = ABOVE_HUD_LAYER, dir = A.dir) - //20 for being above darkness + A.pipe_vision_img.plane = ABOVE_HUD_PLANE pipes_shown += A.pipe_vision_img if(client) client.images += A.pipe_vision_img diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index db9fea8663d..0c03c4a056d 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -406,11 +406,15 @@ It's fairly easy to fix if dealing with single letters but not so much with comp A.target = source if(!alert_overlay) var/old_layer = source.layer + var/old_plane = source.plane source.layer = FLOAT_LAYER + source.plane = FLOAT_PLANE A.add_overlay(source) source.layer = old_layer + source.plane = old_plane else alert_overlay.layer = FLOAT_LAYER + alert_overlay.plane = FLOAT_PLANE A.add_overlay(alert_overlay) /proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 4bc408098b2..266b7504d94 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -178,6 +178,7 @@ W.loc = loc W.dropped(src) W.layer = initial(W.layer) + W.plane = initial(W.plane) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 74fd320c11d..2bd3627f3e8 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -120,6 +120,7 @@ var/global/list/rad_collectors = list() return Z.loc = get_turf(src) Z.layer = initial(Z.layer) + Z.plane = initial(Z.plane) src.loaded_tank = null if(active) toggle_power() diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index f6da5758e77..946b7d31f41 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -658,6 +658,33 @@ return ..() || . +/datum/reagent/toxin/rotatium //Rotatium. Fucks up your rotation and is hilarious + name = "Rotatium" + id = "rotatium" + description = "A constantly swirling, oddly colourful fluid. Causes the consumer's sense of direction and hand-eye coordination to become wild." + reagent_state = LIQUID + color = "#AC88CA" //RGB: 172, 136, 202 + metabolization_rate = 0.6 * REAGENTS_METABOLISM + toxpwr = 0.5 + +/datum/reagent/toxin/rotatium/on_mob_life(mob/living/M) + if(M.hud_used) + if(current_cycle >= 20 && current_cycle%20 == 0) + var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) + var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway + for(var/whole_screen in screens) + animate(whole_screen, transform = matrix(rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING, loop = -1) + animate(transform = matrix(-rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING) + return ..() + +/datum/reagent/toxin/rotatium/on_mob_delete(mob/living/M) + if(M && M.hud_used) + var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) + for(var/whole_screen in screens) + animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING) + ..() + + //ACID diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index 53fcb2bc473..f3fa0c3da0c 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -87,3 +87,10 @@ results = list("heparin" = 4) required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1) mix_message = "The mixture thins and loses all color." + +/datum/chemical_reaction/rotatium + name = "Rotatium" + id = "Rotatium" + results = list("rotatium" = 3) + required_reagents = list("mindbreaker" = 1, "teslium" = 1, "neurotoxin2" = 1) + mix_message = "After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight." \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index fee030d93c3..b5e5b51937c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -93,7 +93,6 @@ #include "code\_globalvars\lists\names.dm" #include "code\_globalvars\lists\objects.dm" #include "code\_globalvars\lists\poll_ignore.dm" -#include "code\_onclick\_defines.dm" #include "code\_onclick\adjacent.dm" #include "code\_onclick\ai.dm" #include "code\_onclick\autoclick.dm" @@ -125,6 +124,7 @@ #include "code\_onclick\hud\monkey.dm" #include "code\_onclick\hud\movable_screen_objects.dm" #include "code\_onclick\hud\other_mobs.dm" +#include "code\_onclick\hud\plane_master.dm" #include "code\_onclick\hud\revenanthud.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" From bc4ee4c4278bbd5058be7ee0d7a1594724bdc6c9 Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Tue, 18 Oct 2016 09:41:26 +0000 Subject: [PATCH 11/15] Automatic changelog generation for PR #20707 [ci skip] --- html/changelogs/AutoChangeLog-pr-20707.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-20707.yml diff --git a/html/changelogs/AutoChangeLog-pr-20707.yml b/html/changelogs/AutoChangeLog-pr-20707.yml new file mode 100644 index 00000000000..ad7f725a8ac --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-20707.yml @@ -0,0 +1,5 @@ +author: "MrPerson" +delete-after: True +changes: + - rscadd: "New toxin - Rotatium. It doesn't quite do what it does on other servers. Instead it rocks your game view back and forth while slowly doing toxin damage. The rocking gets more intense with time." + - rscadd: "To make it, mix equal parts mindbreaker, neurotoxin, and teslium." From a84b1428760adf3add9da14f7fa67f54ac274c72 Mon Sep 17 00:00:00 2001 From: yackemflam Date: Wed, 19 Oct 2016 04:24:18 +0900 Subject: [PATCH 12/15] Armor fix 2 electric boogaloo (#21007) * Armor tweak Standard armor vest and slim armor vest now have the same armor values * Update armor.dm --- code/modules/clothing/suits/armor.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 4c4c319fda3..9cca7ee80b9 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -18,7 +18,6 @@ icon_state = "armoralt" item_state = "armoralt" blood_overlay_type = "armor" - armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 75) dog_fashion = /datum/dog_fashion/back /obj/item/clothing/suit/armor/vest/alt From 5d673426cc249a2d6c3d448d9280bfe5a8f2afde Mon Sep 17 00:00:00 2001 From: tgstation-server Date: Tue, 18 Oct 2016 19:24:19 +0000 Subject: [PATCH 13/15] Automatic changelog generation for PR #21007 [ci skip] --- html/changelogs/AutoChangeLog-pr-21007.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-21007.yml diff --git a/html/changelogs/AutoChangeLog-pr-21007.yml b/html/changelogs/AutoChangeLog-pr-21007.yml new file mode 100644 index 00000000000..4311f6d8cdb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-21007.yml @@ -0,0 +1,4 @@ +author: "Yackemflam" +delete-after: True +changes: + - bugfix: "fixed the standard vest being weaker than the slim variant" From 14a1f7aef26d5df90d1a93adecdf378f6eab52bf Mon Sep 17 00:00:00 2001 From: TechnoAlchemist Date: Tue, 18 Oct 2016 15:47:48 -0700 Subject: [PATCH 14/15] Fixes Vitrium Frothe metabolization issues. (#21035) * Fixes vitfro healing not stopping after metabolized. * . = 1 * CR's Fixes * = TRUE and bowl pathing fix. * fixes my stupid fucking mistake you animal you beast!! --- code/modules/food_and_drinks/drinks/drinks.dm | 2 +- code/modules/mining/lavaland/ash_flora.dm | 2 +- .../reagents/chemistry/reagents/food_reagents.dm | 13 ++++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 41077807377..7d209adf80b 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -259,7 +259,7 @@ ///Lavaland bowls and bottles/// -/obj/item/reagent_containers/food/drinks/mushroom_bowl +/obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl name = "mushroom bowl" desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." icon = 'icons/obj/lavaland/ash_flora.dmi' diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index dc6d616d366..f1d0192c094 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -212,7 +212,7 @@ //what you can craft with these things /datum/crafting_recipe/mushroom_bowl name = "Mushroom Bowl" - result = /obj/item/reagent_containers/food/drinks/mushroom_bowl + result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl reqs = list(/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings = 5) time = 30 category = CAT_PRIMAL diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index b70598692e5..2021ac98033 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -475,10 +475,11 @@ . = 1 if(prob(20)) M.losebreath += 4 - M.adjustBrainLoss(2*REM) - M.adjustToxLoss(3*REM,0) - M.adjustStaminaLoss(10*REM,0) - M.blur_eyes(5) + M.adjustBrainLoss(2*REM) + M.adjustToxLoss(3*REM,0) + M.adjustStaminaLoss(10*REM,0) + M.blur_eyes(5) + . = TRUE ..() /datum/reagent/consumable/tinlux @@ -500,7 +501,9 @@ color = "#d3a308" nutriment_factor = 3 * REAGENTS_METABOLISM -datum/reagent/consumable/vitfro/on_mob_life(mob/living/M) +/datum/reagent/consumable/vitfro/on_mob_life(mob/living/M) if(prob(80)) M.adjustBruteLoss(-1*REM, 0) M.adjustFireLoss(-1*REM, 0) + . = TRUE + ..() \ No newline at end of file From 19ce3e38fb5efb5530019b1cba327cdc92092a95 Mon Sep 17 00:00:00 2001 From: sybil-tgstation13 Date: Tue, 18 Oct 2016 23:07:15 +0000 Subject: [PATCH 15/15] Automatic changelog compile, [ci skip] --- html/changelog.html | 16 ++++++++++++++++ html/changelogs/.all_changelog.yml | 15 +++++++++++++++ html/changelogs/AutoChangeLog-pr-20707.yml | 5 ----- html/changelogs/AutoChangeLog-pr-20770.yml | 7 ------- html/changelogs/AutoChangeLog-pr-21007.yml | 4 ---- 5 files changed, 31 insertions(+), 16 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-20707.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-20770.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-21007.yml diff --git a/html/changelog.html b/html/changelog.html index 44865bec538..022bd926ca8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -64,6 +64,11 @@

  • Added sloths to cargobay on Box and Meta
+

MrPerson updated:

+
    +
  • New toxin - Rotatium. It doesn't quite do what it does on other servers. Instead it rocks your game view back and forth while slowly doing toxin damage. The rocking gets more intense with time.
  • +
  • To make it, mix equal parts mindbreaker, neurotoxin, and teslium.
  • +

MrStonedOne updated:

  • Byond 511 beta users may now choose their own FPS. This will apply to animations and other client side only effects. Find it in your game preferences.
  • @@ -81,6 +86,17 @@
    • You can now grind slime extracts in a reagent grinder. If the slime was unused it will result in slime jelly, while if used it will only output the reagents inside the extract.
    +

    Yackemflam updated:

    +
      +
    • fixed the standard vest being weaker than the slim variant
    • +
    +

    lordpidey updated:

    +
      +
    • There is a new potential obligation for devils to have. Musical duels. Ask your nearest devil for a musical duel, there's a 14% chance he's obligated to do it.
    • +
    • Removed the old offering a drink obligation for devils, it overlapped too much with the food obligation.
    • +
    • Trying to clone people who've sold their soul now results in FUN.
    • +
    • Devils can no longer spam ghosts with revival contracts.
    • +

    phil235 updated:

    • Visual effects appear on the target of an attack, similar to the item attack effect.
    • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 8e89527b365..5e564fb34ee 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -7435,6 +7435,11 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. ops instead of sleeping carp Kor: - rscadd: Added sloths to cargobay on Box and Meta + MrPerson: + - rscadd: New toxin - Rotatium. It doesn't quite do what it does on other servers. + Instead it rocks your game view back and forth while slowly doing toxin damage. + The rocking gets more intense with time. + - rscadd: To make it, mix equal parts mindbreaker, neurotoxin, and teslium. MrStonedOne: - experiment: Byond 511 beta users may now choose their own FPS. This will apply to animations and other client side only effects. Find it in your game preferences. @@ -7448,6 +7453,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: You can now grind slime extracts in a reagent grinder. If the slime was unused it will result in slime jelly, while if used it will only output the reagents inside the extract. + Yackemflam: + - bugfix: fixed the standard vest being weaker than the slim variant + lordpidey: + - rscadd: There is a new potential obligation for devils to have. Musical duels. Ask + your nearest devil for a musical duel, there's a 14% chance he's obligated to + do it. + - rscdel: Removed the old offering a drink obligation for devils, it overlapped + too much with the food obligation. + - tweak: Trying to clone people who've sold their soul now results in FUN. + - tweak: Devils can no longer spam ghosts with revival contracts. phil235: - rscadd: Visual effects appear on the target of an attack, similar to the item attack effect. diff --git a/html/changelogs/AutoChangeLog-pr-20707.yml b/html/changelogs/AutoChangeLog-pr-20707.yml deleted file mode 100644 index ad7f725a8ac..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20707.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "MrPerson" -delete-after: True -changes: - - rscadd: "New toxin - Rotatium. It doesn't quite do what it does on other servers. Instead it rocks your game view back and forth while slowly doing toxin damage. The rocking gets more intense with time." - - rscadd: "To make it, mix equal parts mindbreaker, neurotoxin, and teslium." diff --git a/html/changelogs/AutoChangeLog-pr-20770.yml b/html/changelogs/AutoChangeLog-pr-20770.yml deleted file mode 100644 index 7585001537e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-20770.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "lordpidey" -delete-after: True -changes: - - rscadd: "There is a new potential obligation for devils to have. Musical duels. Ask your nearest devil for a musical duel, there's a 14% chance he's obligated to do it." - - rscdel: "Removed the old offering a drink obligation for devils, it overlapped too much with the food obligation." - - tweak: "Trying to clone people who've sold their soul now results in FUN." - - tweak: "Devils can no longer spam ghosts with revival contracts." diff --git a/html/changelogs/AutoChangeLog-pr-21007.yml b/html/changelogs/AutoChangeLog-pr-21007.yml deleted file mode 100644 index 4311f6d8cdb..00000000000 --- a/html/changelogs/AutoChangeLog-pr-21007.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Yackemflam" -delete-after: True -changes: - - bugfix: "fixed the standard vest being weaker than the slim variant"