From c5040421f251ea7a6493b42f14ed77b3551134e3 Mon Sep 17 00:00:00 2001 From: faaaay <69845288+faaaay@users.noreply.github.com> Date: Sun, 28 Nov 2021 20:51:04 +0000 Subject: [PATCH 1/8] adds fluff/jade_horror stamp --- .../loadout/loadout_fluffitems_vr.dm | 6 ++++++ .../vore/fluffstuff/custom_items_vr.dm | 11 ++++++++++- icons/vore/custom_items_vr.dmi | Bin 62380 -> 62588 bytes 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index 62d3fcc8ae..649939ba8b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -296,6 +296,12 @@ ckeywhitelist = list("chaleur") character_name = list("Hisako Arato") +/datum/gear/fluff/jade_stamp + path = /obj/item/weapon/stamp/fluff/jade_horror + display_name = "Official Council of Mid Horror rubber stamp" + ckeywhitelist = list("coolcrow420") + character_name = list("Jade Davis") + // D CKEYS /datum/gear/fluff/dhaeleena_medal path = /obj/item/clothing/accessory/medal/silver/security/fluff/dhael diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index ad638eaff0..7663a09ea4 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1399,6 +1399,7 @@ new /obj/item/weapon/material/knife/machete/hatchet/unathiknife/fluff/antoinette(hold) new /obj/item/weapon/reagent_containers/glass/bottle/poppy(hold) + //Hunterbirk - Amaryll //This is a 'technical item' which basically is meant to represent rippiing things up with bare claws. /obj/item/weapon/surgical/scalpel/amaryll_claws @@ -1409,4 +1410,12 @@ drop_sound = null pickup_sound = null origin_tech = null - matter = null \ No newline at end of file + matter = null + +//Coolcrow420 - Jade Davis +/obj/item/weapon/stamp/fluff/jade_horror + name = "Council of Mid Horror rubber stamp" + icon = 'icons/vore/custom_items_vr.dmi' + icon_state = "stamp-midhorror" + stamptext = "This paper has been certified by The Council of Mid Horror" + diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi index 9b84b0f92c5ab4ec9517a49e60f66d2d91492e16..67ffe811bee7031b022e29eec36934de1cfd8974 100644 GIT binary patch delta 22580 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⪼GI&c>X)}Ghz6{@)5m7b{-oUnEOCiM&$ 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 JOZA;1{s+&fVz2-J delta 22371 zcmbTdWn2|e_b@ti2m;a}ASfszASro}?v$304r!1)3?L;TrKAFalt_1XNT+mnNJt+z zhj;M#$Nli$`{D8%U}n$E+H38#_UgIb!uYv~5%Ul&GxpH~kTvXh%6^<_TKTcw`*=BNpI@Q@~_B{`Fdu5(Z9X?R0TA5Im%uj1L1Sp0MCt3D2gO`Z?fAE)6}M(ffy z)G$fBvgOHxhwN#17Z!qecS`W$A`4%`HX;frxuF{MDj$ zj|pSPdvu%}j|-4nM+%`IMGh!M@Z8-#X*V+(5C65w;vWv14A)PXdzxkU`jLw?Q}qTP zn{hg={XOvO9q*TpOFjFo!bYP{cVC$9a!I)_ofn*pPvf(5?y++J!Tjii!lm(@7;G=a zYNDgl|JHNJmt*`foM8I{@7v~+#(7(@<0+e`Lzw8VUr>q3k{BeuLNW+{a;fuiL$m*- zy~48STS~~7-Kt*l!TyB+Rp=Z`&`;p&<=19g}J& zbxfSjrVs0+!h6-^Vty}}WKK9B#_f;on;KucHm08a$avNZqk7>!^61sod(t|0>>M)q z6iPcQd2ozJJN7zoCk2K|=Vf@r;E_Z2(zm-~P0GFf?6A1;HT}+viAEMu+zXBbye!~2 zm+sY0ASO|-TSglFy?vTp`=$i~o$1jB8IMKXNo#5M`#Ct@Q7TiKUntWYN<5I`$D879 zi}zcVB`j7qZMRd-&SSzLi8p+DU!sF;hmy?3BVToLC9F#=aWHYiDfqn0tSxvoC?3aW zpuPUR2OgH^im0`LMmLewCIzY4jC2I1ys*a*5$Lu_VcQ?epl48_v9*RoY9fe^8zFUq2wiNGcwiiCI0b zE`7fIgqD`>w-=yGlAuHM9(`NmhLK0;^TcBcZZLCzDSLiQ@>`L?%)ciwP> zPRYGST=kb~*GUU8vDT6&Gc4a_oWZs2{(>PGGlM6v8cK&nKZpJ9(sughL__p?*H&;U zq}M-mMtq7=*zc84D=n(!{BWPGtT{%bR5N3CT$x2Kn+0%+4>M=c@_i&0@TJT)#P5*-N=V3I8y(4?Pa*fh&Pe z!}RmC4G@wQh-XZX%bqZXjbp`9B-%)zVki|6vOEM zD@Tr3VS!pf1ZAE34O=jGjqz7>F#D;O|o(5cfuf5^#H}*Ub3!^e|xj7PwXSPLb(n(3f$Nhb|f7I z$%E^~Z8xDW8byhFDOp)ri8V9d?G!XM;! zY}B#5`kmGp!&+890sHps7zdZ6<6)wl~-J5FY*``nX1AEcTcN7P zi{1i#0GP>n_eEqrO!Y>G@dqjgbToPL|4ML)>^zW4s+U$yl9s?BbgQU^nayjtw@>UYo;K5Mw%54rTq=?E@VcL$Y0ncHV;~0CV2gTxr znD115apTWW82*QTZ+^iJB?Auq#wTxDN{#&|e}~((k@CoJM@ERZw!2$i;k-S-x@JSa zC{~#o8NTaVEO{z;q`Z_AbIH!ui@3Cc7({xvs*pm<$M@onCG7gM!XpJm#pli|QlCD3 z%E-t7;8$nCM#Tccpaa;apx*o3W89MB-o2FswAUie!mf`@+}v0RU94?HZ^nivY`jawj!A{3$>Q@S8cWK*aXi_Z9%HjN-kc=j zFs#EISjU&|9j3n|2s{!Sb`^E9QQ6$(j0U!*IGS-TF~nqs;F=wilYIX@|KVT^*FB{wX{3a918zq9HQLvWV&>>1rEn5`!<3Yi;e~~dIXNtt zI5^A?JLc*tDl5M=Hr_8RETkg+ZA0cU>GPY-%oY*yNXAq{0kh~Mo+MmRc!MDi4S?2M zykG(yIPn(Mj#d^|^5pW%ckJBfzTc$-dZe|}@=)EoSH>2~-mUIQvUOSX z0@3`i&|I`=Adq{a^U7EwGGX)z_a23MOScOl%;M zLH&f($7qO)4V{YEl4rh`n4$t5tI$XqO*x7IsHm>af;iXO+C~I2qIzu{53ZNZQZ_!2 ze2KeY8?)w35`2t3$tuGrqKoGKmYu`6ND`Gz@%AGB?&;~N%-6HCcO4xaCTEq-J$uw2 z=|xvECai}?2c3TEhei*LGxPIP%>GC}t`XZHxC)!5xwQLGkHmU{zQy{O`E|2aZx}JJ zZRZ$&6e2kV_Qr0r8LQMZxMvS@pCHfJD9f`DPx@2r z;()riLYwuO9@u5mLkJRhi)U+4N6nL*rJ%nAsJJwa*m?MTzcBCdy{u90A*G{>gf;{( zKR?qQ*Q9#n30umH(@rKmfp}dJp)d#Ul2jwQ&{yK4$d4bff$@onm$_rhj#vr=1vXuO zbSks*S^;UWTd)I~LNE%w&JG38V9l*h^B>&#U2cVLYP$MbjD>~&E}OeCWMy_I^4Q;* z)72Ncr;J>qwY(=1n;KcOLv^PHF!&z61OoA{%Mk*R_o+9vsMEGCSt;&Q@0>Z0#D4S4 z+)S6c|Cz$wCi)1u5RbpdcT}BYW9qUs)R(0H)g0tMY^Q$n<^!(Ine;>=Z9^04OTYv6 zC+haM;~yH^h6My~?M{mwQp=IUOmtk{5(D;y&G3bV(mc2qL25In4b|0M>oM_*u&2i_bC~?zXEJv0ENd=w%iTLqy zVew{d{TG2e{HRvN^Ob9PcNV;=DwHkYYgA**^{)Y=UDmQ)Dh-K%3N^AhuaW-4=||7V zsEAokXx-u=lU{E2v1F1=#>}d8=iZ(-3gD86%O>Tp=1B~Xk7GJ2X9$nL96xS{zj{^0$jgrQ?3snb{aiK7tdf#0 zJ7hu*{=*Yo>125rOb7R_c1BL!upP24oFY$>RBdzP6z55xI!oKB4sQh`F9+JQO8Rjy z_#AQij66&kw=pL~2dp$ZFf_(Or{Q5w5csE?L_Y{B3nrTst;-s#P_kfeoJ}fGVk48p^ zFi%t|)8Eq576sU%pWT_!FBtxP)J!(ncgZLuQ{6J` zzq&-@I>T8@$^i@SlSh4N-VZHTHz-p3PD$_goJ5??)nRXk>{;HV;K0W7P9c-QhE1Tw zGF`m%IhAeHL3_LAmkmdoCz5t{pT~TQG<@>Q1w|kI@?+3k)ZCHTYHMWZY`eeD4YDZ_M*My@Z0t}KujlG~o1pL2fY*~@x# z+zoFUAK&tVmO30jkPj&HJ?2FHdc&*6eypRW24rh|uq$q)AOc-*?PT$g_iI`)er5%T z*n5_t3xe~}9UW4SKP!-tk$D=@19_8pmL)20U?2@s_T^Z@X695^ZG^i-%6LVU_R9j% z4KA9;RhK;3KXS;sRc!9dV07|>IpfvZ-{gGyq50k(TPYOe;Lik_-OUOxO@(RlY876r zC;k3+>m2!sk!+6r`fD#iTR;!vmwj5yfyc98?iKzezQf(Nk=aJD!Izf~w+@}XmKq!$ zN7wX0Rz*AK<3$Y*@p4c|pdkJ~08B25O1U*!5<{TV; zINSckAG|NET)B%3VgHq+UU*?cs;jF@g?*PU%=l)PE`;?dSAH%?ygvh%xAINTxF;sV z7u8nWbRVWIk^gFCZ@S#t-d?&Z(ze(eOMvTsCi&MlRo?g2h`N!ItB77$2)45jBPGh^9KhfClrDBB7!0#$+O#swD z`}VTs+8_wtOnY}}RAo=0>~tpRvKk1HY)RF@xEb2L2Lh~|WTsnMEa(3<<2PbLZ0G%( zOt9eaub~7PF`&JP{YECF1diV#x;58?YclqT+>-ZCTSK4$n(qc2?e32Ma}uiZ@aRAX zSE^;G3I4uew(m{JcorBxbM@)sB=H@Tay07w`#S2>A>B7(V+BNX0uC^HTZ=bu z-dqfA4}zJS_vu&@jxhW^IFNcrn5d3S(Co`5Uv}-w7rzbQnhppdTHtX0er+IL5b@>e zmCqcz-`XyU?;zPiY7*O2iMG$o8{Lw&p<>5@|wgG6AZ{_gr(!pIjQ-Txe24La-0*t&WNR{>6|G z_>q_QIC_)0B3L0?|98D=`lCb+BTRpbg)b2V8R;g}SZ)cFhaw2857{KIW|B9=izg#2 zuh~l@(S`b+;!R6@KgcOAKbpV)_2AM^yzWEBvn>C?zu{5Pp4Brdg`NVT$M_S}#jU(L zySVYU*o%`QXWwBx@CisOQf?1b><(}q@Yfw{vG#lN^7Sh=?26YfM}io?AGluYAD?@7 zoV`1y%pzs~2Xo-)PRob&m!5kVt!wbZB;9mg~>5Gjb%H+NUFoNoTcU-GoQxJgSTHBY6fl7G%w3c0vh z9O?1HWKH(A*Y74dwKM25%Mn*siGvL1f;69aoBba~Xzj5llhB+e0nGsgKo07&RBfZ2~ zcx&+zyPzHWPIK0_PUKel6V>3!lCT)-e>Wy6QYZiWh4UZz><`PvF#onPCS<+mypJ=J z65t%Q!Xce-9jZ=1^1SAOR?=t2ax=jb--zvfzsDo!b>6Q~rzJJ#u)kOo_i0Rd1AH~C z;U7AY2iE^kQ21MiL-h*i!k^Uxm)pEsa`jb`twewfl0099wd@PqGOEnLNS4F#zlwl= zm&~`~ZzBNxIGVDK+E=F^2BM%6b-w3sOQ~@eHkv11u823<>PGv{i?F-Y;;_KfmgUJs zD<0%UDQ8{w<*F0ui;~dO;;Y^|?O**2Ru}P(LT~YfP-kOtzl8+?m}OPKl4QTN9x?fT zhS1a&Jb{lD$xR2K?8E0EodbIJOf3pS_DtRs^cph|Ji!WAhJ;Z0NKu5miel>-T?PWL1((c#u6!|MjY#fYr1T>@-~y zg7k3v!WZA?Q%4HI$i9>`0C5Yg5(Uhd*I2qL+z%*R*&ah1V`Kd%qw=_dss`r5hg z^=uc#!W5O519If-QFZtUvEm;T$&vkg&H5q0 z1R4gDS07kHs=W(^yo&W2;JY~dvZ;7C4(&v8;bx$lpILo={@Qu3@Ni^)fT4RKgE;^H z<=jhxaam(qC^)_mecY{Hb(+l&()qlX_|6Z0S#z(#>4b=TafTfnb9qeY z8UpWt;_Pq|W|@r4A2i0=USc{AsKo;raiIhDX0RlBD!b49!s-`~QL+QKKjuqf=s?3R z#FV%_!6Y$>L3?=nXdo_E4{-0_ZA>b20Pl7PWJD+U-&g(%Xc+LGfbky`DgT$)G5_Xa zYGK5X`~QIVz=hJE5m(~v#)fJmhWI1@waR3JW)@`2C@XH8U>t2r$4Y)=bFs?oj~M-E z#x=i-n5I2MJK8mPSDf3QRSvdvvW~ir6-x%2#knz(bVWW-OiV1#)w*`UsXH~3$63_& zi5Rx~ia5{PLr>Ph3s+?CN1ah3I(RJ%{LYyrwoD&)0wv0dtEwoT$E!TKNGIxNxH)XZ zSnli2y`9Me(8cs(@cYjB4K;V2-=3aY5+&Hv=Kd57Y+yf&CLT@HStJQKykvz-C`k$U zf9TYlu65mXf_$zHC86x4t2PxS^Ea$4LWmV7Y6D}5rt8DlCSQaKy?7kVSI$@r`H_L@ zfQkTHcG`1oxe+2fI^OSmWYYq7dIo;qEh@n{#Nfq42*#LkYVGNTD`{2K+uytQ*JJm-Nh1F4^dT>q z;a;bBN9wP#9genI5c7In#%NG(#@gE2U%Q}l_?zTNu`!HJ)SC>7wq)(?pY81K#tK#H zzVZH&i%krqLDbt+>c8!Q>!N|c%%icX(d|8zi@XEs?Y>;c{DISnzN!mzf0FIKf*a7R z*`%1EW=JXG1Vh$%e+XhifofQUqH@b=eR5PB~ZHejLiDU@rEk>00^vHcmNJ#mU z7=A;0g;h{cASoe%ZZt2@x!Ei(mwqDupJVYH5o88QCmg5c5Mq(+be~x{Q3m*IwL8@X zO_v&`@^^ld+&4q^*Kcb}noH8u>FIQC!>@Opot?{kFa8%yvt3ei?WHD>YdMbqxU;;G zd>+LcrH#$lj`m_N!iEREC)E=zqojnGlG8}a%S%uOHou`^5#l8{+)iCy4zm#YdRJXt zT^BrgiM5#fij4%Mp<%nki94xJYvOzWA7#BgyiN?)NBYmFLocH}rvJKQ{bcfgWH6?C zbKwa{tVIi)*4d&Is&Yz6oSh|ZV6k`ZOrZ{ui&LCQLa(CEJj8@X?}`NU7v6gu@24}d zc?EwXF5hgobM=GZ`y$`z?IvqFKnDhOg}i7C>Rcm0CbfZd;jYPLUM`5zt;J^8U^*!qEDY@74O+Ye9zfi`_jo15h$6^jVT9F3YK5+pV6Sju*k5}%dvZ$JQL}RX{*nIh4 za3A(V`V?E8nR{Y;4@v$hVvu-rib#QN`pa5c{p!R$j}X)zQx9cioW?Cj85tTtGO zPqSAXn_;a96}rZ4WlkZBO~U=f#RKI04Zk0IkkI{IxMOmmWJHzljz$zI?x94-{dn5MqM6+7x z1ru-rmrHE$W7xT3zLl}|1s(lq-AF9pEx6cp-{0{+vnZ=aP*VUA-K-}2bG5ql@16y| zfB$W4o6BSWwG{mg9XMl*Ar%0hJkhAGu>{*rmY?dZeK?Uf=75925aQ3Kt`wfqzHnj` zyI8_tU+{}JeeS@7bZCR1>b-tV2Qa>{y6YgP425y%K;A31Ij45Q$MOoG#OnoG2|sog z(k;o+_rFWf((#Z3Yn~TzV%vTB2SbqObWN{#EQy$phcdpHSa_?yp@8R`M*i^B(~#&nUhH8|2- zv-P+(!ep&8G{XF=ZO}iWTd&vAd-!Nx8oS6Iy-N6c$9(f0%}Z4^$R#LEeF2%KH$eBK zr31W86HP+w|6%sLJbe?JZsx9k>Xu4qACrT5h^7s&`1$W9D^Y}K70p<#s=)qYgBK4z zEGc^Fi(t)>o^*8~P7}ppbo1-Bqa^|JMiqK5H2?X{Ttovqqbqv{(e@ zg1X3O(aYsf&#M_(G+-KVDHn~v6p8@oak%FG+zap7+f&sGB|$UceH3Iz5b8uE3QC_{ zITF)@&L)y9Kv1%Pio*tg)1;}wkcKfi4}_!SdvOFRr7_L`F}qYoQAyanfyTmrcpW!b{jkD(;? zyROk+V^jhIrc9g2%^uMizTs1huc?_7<+I*J6_+q4gQ3rRIeDFiE3$E9J@b1qi0_M9 zDe&MXziFT>YJ+pVNnY%!=7jPsme2Rm7yM4tfwXAMcXni40&kiuCHLF$#ls}{h8i5d z(^-Irl;0a30sSNIJS>hbFxmAha0R5FS>i0>TILi-P&{i}Il_xe z{8rR@Za;s}2&`Hw3Nms2XX!G93f0uVYUjz-I>xmnZbWOkk2y=<;$WO>ujMvtW5S+# zAJz}PZXL*g4Qr(+Bk$LyieeZtfPkN;@E5ee>As#GF2&nFDdK6x^`rG3j@N%2LCJ%K z#!}Nx{PI8hVcYn3Ttu%SZ*G0`VBbv-$E7t@1g+=ZC1leSO^1}~ZnAcPw7NQpgJ)Ux zEZljKtTO4zX9d9DsJQ!9O}+gSuK;>p@pSD!)Q|=)+dW#ekiKFwe{cN_$eM~^Gcul{ z9U~^w?{=expNKtuKR3x)?Z-H3aRuB92(>BCeGTcn(?8Db@z26DGnqm+Kq7$2&s}N6 zaDahPNeVfTO-Z)++WTc|R9YciBaXiK)5*2SU#9MMhUuhJI0C$IEj!nEaX z+}o~7yNi<>(L1n1C^~h+^IVG%@aZM@y7LNdRb#tTS8#a;6VmEjE$0IcbH3(7ZR~(& z`DSd?;71Yz*sRoz4+FUCnul61yb%vV0QU?7F>vmhEVTrbB||EM6+IPl2b4adv~xC? zJ(z=VKo0(euXPiweNU58h>Fs8CE+SMTwuWKn*jV%w1;&Bob#9WF&I-X@!a5&_hn(&&hzA^9KTt4lA4H)Q~v*|B1i#z>6Q|Kb#+F3esP@?Dj?dTdoYr z|B1OXUNZj2HAKVyzs2TbEl@;$A$VYX^8&-)>@5>FH+RgZPeGwZs@wco!FYkh4B@u{ z|Hbp$C+YPN(d3Z^TxNU^@Jd}BOv?i(@wz-uHwY0S46ci-1w8#g)3Wq|m*%e;ship*+jc%a$YGLQ5zGhJAL?^Te+|vy17X_v!^2ZyU+;$;b}Ul?U<*+$ z^*(CzDh{-?vI2XH4m?4}s(U^25oVh~_714HxHvT(ozR;`ieC=C+9UR;=#a|(H>_=w zeeXmecg&3l^3gKOy&SMK3nq+G1xg1ciA|l51C)9;-B;G1doP48lMPCbqYN*WD-H|{ zWCt$q85cEEHV`qIIG|qC*4Bb8cGL51n0M`x+b`^f=$$QXd{Pq>{onyb3_W|E8!_|X z-`Pc~KOXL?*fGSxy9A&)ETk!WDMz_rqRn88A8zj$oQ=08WcoRk@ik;tIBA+MJeo@H z#HZI*@}OUIaRA~rTIEB%Ji=F+39+$nsty+3KHBd@V;AA4*c|+NtOx3SH#Z%R_)RoN z!N|@|R#=F=b>dxcZJLrHK6#+vbZpUQEvP`M2`g2F0pdeJVqM5Y+uo>cjZ|?1>~UJ< z=GXZ9&2~k)T5ZJ}Sn~Quodz0uGZpumFS_H(e+nnqCR1$;kvX7Ka=gX`k^~&->HV^b zRf`>u*5>!Jzs6s$puj6lJtWBj0bQZSa`}2X#-Tl|g(&?ZIEv~y`l8>}Gl$xBiZ4R$ z_|^Q)fvu}pJWk%t#DuRs-~K#GBA;YvSvvB5H5AiiqfbzCRLc7T7@qsdL&G>`IsCkJ zh#Lq~dnY3)$|nigm58-boY!}qbKjO|ZF(X~EEIhGqdCQQo>OK_O$pySt=gK^EJaCG?`+AOIN6*R(r`rLpdo)gW?SB~oVAH4MKs zHcj`Vmt{cq0x2oY6&1X++oMS>E6?)T1-Ui$#uQ}C&A%Hpe;EP*3 z3^X{=lnK>b4gu?F8uZtZ7D%cXcHv=~ss z=U1)ATrtmicpeAeGU}z7Et~fRDDUb8otO@OiLIx~JTlud2v<#iVi6o1JXPmjphqK( zp1sN$jqF!aPAncsnnRqGe8FaMp5$e5CmT+?jZNNGj+1~Dfci)dtA06WyTZJ

?7If}czJ7lecjwD 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 Date: Sun, 28 Nov 2021 20:51:24 +0000 Subject: [PATCH 2/8] support for unique stamp text --- code/modules/clothing/rings/rings.dm | 3 +++ code/modules/paperwork/paper.dm | 15 ++++++++++++--- code/modules/paperwork/stamps.dm | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/rings/rings.dm b/code/modules/clothing/rings/rings.dm index b8313c5f97..f07d0ae674 100644 --- a/code/modules/clothing/rings/rings.dm +++ b/code/modules/clothing/rings/rings.dm @@ -63,6 +63,9 @@ ///////////////////////////////////////// //Seals and Signet Rings + +/obj/item/clothing/gloves/ring/seal + var/stamptext = null /obj/item/clothing/gloves/ring/seal/secgen name = "Secretary-General's official seal" desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring." diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 95bcda3b36..f79848de56 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -580,11 +580,20 @@ return else if(istype(P, /obj/item/weapon/stamp) || istype(P, /obj/item/clothing/gloves/ring/seal)) + if(istype(P, /obj/item/weapon/stamp)) + var/obj/item/weapon/stamp/the_stamp = P + if(the_stamp.stamptext) + stamps += (stamps=="" ? "


" : "
") + "[the_stamp.stamptext]" + else + stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [the_stamp.name]." + else + var/obj/item/clothing/gloves/ring/seal/the_stamp = P + if(the_stamp.stamptext) + stamps += (stamps=="" ? "
" : "
") + "[the_stamp.stamptext]" + else + stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [the_stamp.name]." if((!in_range(src, usr) && loc != user && !( istype(loc, /obj/item/weapon/clipboard) ) && loc.loc != user && user.get_active_hand() != P)) return - - stamps += (stamps=="" ? "
" : "
") + "This paper has been stamped with the [P.name]." - var/image/stampoverlay = image('icons/obj/bureaucracy.dmi') var/x, y if(istype(P, /obj/item/weapon/stamp/captain) || istype(P, /obj/item/weapon/stamp/centcomm)) diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index be60632186..c2d610f355 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -14,6 +14,7 @@ attack_verb = list("stamped") drop_sound = 'sound/items/drop/device.ogg' pickup_sound = 'sound/items/pickup/device.ogg' + var/stamptext = null /obj/item/weapon/stamp/captain name = "site manager's rubber stamp" From 3f5e0d453571be66451d67b9019011a1e40dfba6 Mon Sep 17 00:00:00 2001 From: faaaay <69845288+faaaay@users.noreply.github.com> Date: Fri, 3 Dec 2021 20:13:56 +0000 Subject: [PATCH 3/8] resolve .dmi conflict --- icons/vore/custom_items_vr.dmi | Bin 62588 -> 62839 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/vore/custom_items_vr.dmi b/icons/vore/custom_items_vr.dmi index 67ffe811bee7031b022e29eec36934de1cfd8974..b98f92406f212b97571f98d2239781df7e3a0a74 100644 GIT binary patch delta 3071 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 VsrxSIraS-u002ovPDHLkV1g&>mWcoW From 2ead07ed2d04cbdd08e64a16e72184fd609cfd1b Mon Sep 17 00:00:00 2001 From: Heroman Date: Sat, 4 Dec 2021 06:29:04 +1000 Subject: [PATCH 4/8] Makes proteans gib on death --- .../mob/living/carbon/human/death_vr.dm | 19 ++++++++++--------- .../station/protean_vr/protean_species.dm | 10 +++------- code/modules/nifsoft/nif.dm | 2 ++ code/modules/vore/eating/digest_act_vr.dm | 4 ++++ 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/carbon/human/death_vr.dm b/code/modules/mob/living/carbon/human/death_vr.dm index ca319be6e4..47d5b88589 100644 --- a/code/modules/mob/living/carbon/human/death_vr.dm +++ b/code/modules/mob/living/carbon/human/death_vr.dm @@ -1,13 +1,14 @@ /mob/living/carbon/human/gib() - - //Drop the NIF, they're expensive, why not recover them? Also important for prometheans. + + //Drop the NIF, they're expensive, why not recover them? if(nif) var/obj/item/device/nif/deadnif = nif //Unimplant removes the reference on the mob - deadnif.unimplant(src) - deadnif.forceMove(drop_location()) - deadnif.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/deadnif.w_class)) - deadnif.wear(10) //Presumably it's gone through some shit if they got gibbed? - + if(!deadnif.gib_nodrop) + deadnif.unimplant(src) + deadnif.forceMove(drop_location()) + deadnif.throw_at(get_edge_target_turf(src,pick(alldirs)), rand(1,3), round(30/deadnif.w_class)) + deadnif.wear(10) //Presumably it's gone through some shit if they got gibbed? + . = ..() //Surprisingly this is only called for humans, but whatever! @@ -15,10 +16,10 @@ //Not in a belly? Well, too bad! if(!isbelly(H.loc)) return TRUE - + //What belly! var/obj/belly/B = H.loc - + //Were they digesting and we have a mind you can update? //Technically allows metagaming by allowing buddies to turn on digestion for like 2 seconds // to finish off critically wounded friends to avoid resleeving sickness, but like diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm index 0c45268cab..89155e9452 100755 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm @@ -172,13 +172,9 @@ to_chat(H, "You died as a Protean. Please sit out of the round for at least 60 minutes before respawning, to represent the time it would take to ship a new-you to the station.") - for(var/obj/item/organ/I in H.internal_organs) - I.removed() - - for(var/obj/item/I in H.contents) - H.drop_from_inventory(I) - - qdel(H) + spawn(1) + if(H) + H.gib() /datum/species/protean/handle_environment_special(var/mob/living/carbon/human/H) if((H.getActualBruteLoss() + H.getActualFireLoss()) > H.maxHealth*0.5 && isturf(H.loc)) //So, only if we're not a blob (we're in nullspace) or in someone (or a locker, really, but whatever) diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index 6dc40db443..7b14f13e72 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -28,6 +28,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable var/durability = 100 // Durability remaining var/bioadap = FALSE // If it'll work in fancy species + var/gib_nodrop = FALSE // NIF self-destructs when owner is gibbed var/tmp/power_usage = 0 // Nifsoft adds to this var/tmp/mob/living/carbon/human/human // Our owner! @@ -613,6 +614,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable desc = "A NIF that is part of a protean's body structure. Where did you get that anyway?" durability = 25 bioadap = TRUE + gib_nodrop = TRUE //////////////////////////////// // Special Promethean """surgery""" diff --git a/code/modules/vore/eating/digest_act_vr.dm b/code/modules/vore/eating/digest_act_vr.dm index 3d0486fd79..741d7e0941 100644 --- a/code/modules/vore/eating/digest_act_vr.dm +++ b/code/modules/vore/eating/digest_act_vr.dm @@ -139,6 +139,10 @@ //Replace this with a VORE setting so all types of posibrains can/can't be digested on a whim return FALSE +/obj/item/organ/internal/nano/digest_act(atom/movable/item_storage = null) + //Make proteans recoverable too + return FALSE + // Gradual damage measurement /obj/item var/digest_stage = null From 7e584b06426b93708c17e45ac4fc6357e3e717db Mon Sep 17 00:00:00 2001 From: VerySoft Date: Fri, 3 Dec 2021 19:35:27 -0500 Subject: [PATCH 5/8] Space Whale Tweaks I forgot to write a scanner description for it. (Also I made it slightly easier to land on) --- .../subtypes/animal/alien animals/spacewhale.dm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm index ded1f6ad6a..4cc14a1caa 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm @@ -9,7 +9,7 @@ /mob/living/simple_mob/vore/overmap/spacewhale name = "space whale" desc = "It's a space whale. I don't know what more you expected." - scanner_desc = "It's a space whale! Woah!" + scanner_desc = "An absolutely massive space-born creature. A layer of radical energy around its body prevents detailed scanning, though, the energy along with its movements seem to be what propels it through space. A series of bio-luminescent lights ripple rhythmically across its surface. It is difficult to spot at range except for the wake of energy that swirls around it." catalogue_data = list(/datum/category_item/catalogue/fauna/spacewhale) icon = 'icons/mob/alienanimals_x32.dmi' @@ -77,6 +77,7 @@ var/hazard_drop_chance = 35 var/held_hazard var/restless = FALSE + var/post_restless_tired = 0 vore_active = 1 vore_capacity = 99 @@ -133,6 +134,9 @@ /mob/living/simple_mob/vore/overmap/spacewhale/Life() . = ..() + if(post_restless_tired) + post_restless_tired-- + return if(!restless && prob(0.5)) handle_restless() @@ -143,6 +147,8 @@ hazard_drop_chance = initial(hazard_drop_chance) movement_cooldown = initial(movement_cooldown) ai_holder.base_wander_delay = initial(ai_holder.base_wander_delay) + ai_holder.wander = FALSE + post_restless_tired = 250 if(child_om_marker.known == TRUE) child_om_marker.icon_state = "space_whale" visible_message("\The [child_om_marker.name] settles down.") @@ -198,4 +204,5 @@ skybox_pixel_x = 0 skybox_pixel_y = 0 glide_size = 0.384 - parent_mob_type = /mob/living/simple_mob/vore/overmap/spacewhale \ No newline at end of file + parent_mob_type = /mob/living/simple_mob/vore/overmap/spacewhale + scanner_desc = "An absolutely massive space-born creature. A layer of radical energy around its body prevents detailed scanning, though, the energy along with its movements seem to be what propels it through space. A series of bio-luminescent lights ripple rhythmically across its surface. It is difficult to spot at range except for the wake of energy that swirls around it." From dd5dc79260b10a928aabb60581ee6b80193e55b6 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Fri, 3 Dec 2021 22:46:11 -0500 Subject: [PATCH 6/8] Tweak capture crystal Adds the ability for the owner to destroy the crystal (for releasing the bound mob) adds admin logs to commands given through the capture crystal --- .../objects/items/weapons/capture_crystal.dm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index 002b381c81..c30e47b08d 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -65,6 +65,7 @@ if(!AI.hostile) AI.set_stance(STANCE_IDLE) to_chat(M, span("notice", "\The [bound_mob] is now [AI.hostile ? "hostile" : "passive"].")) + log_admin("[key_name_admin(M)] set [bound_mob] to [AI.hostile].") else if(bound_mob.client) var/transmit_msg transmit_msg = sanitizeSafe(input(usr, "What is your command?", "Command", null) as text, MAX_NAME_LEN) @@ -73,6 +74,7 @@ return to_chat(bound_mob, "\The [owner] commands, '[transmit_msg]'") to_chat(M, "Your command has been transmitted, '[transmit_msg]'") + log_admin("[key_name_admin(M)] sent the command, '[transmit_msg]' to [bound_mob].") else to_chat(M, "\The [src] emits an unpleasant tone... \The [bound_mob] is unresponsive.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) @@ -112,6 +114,19 @@ AI.set_follow(M) to_chat(M, "\The [src] chimes~ \The [bound_mob] started following following [AI.leader].") +/obj/item/capture_crystal/verb/destroy_crystal() + set name = "Destroy Crystal" + set category = "Object" + set src in usr + if(!ismob(loc)) + return + var/mob/living/M = src.loc + if(M != owner) + to_chat(M, "\The [src] is too hard for you to break.") + else + to_chat(M, "\The [src] cracks and disintegrates in your hand.") + qdel(src) + /obj/item/capture_crystal/update_icon() . = ..() if(spawn_mob_type) @@ -289,6 +304,7 @@ else if(!isanimal(M)) //So it's not player controlled, but it's also not a simplemob? to_chat(user, "This creature is not suitable for capture.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) + return var/mob/living/simple_mob/S = M if(!S.ai_holder) //We don't really want to capture simplemobs that don't have an AI to_chat(user, "This creature is not suitable for capture.") From 3a5d99f6d3cd0e709da7e01f709a512cbf1ae053 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sat, 4 Dec 2021 07:10:51 -0500 Subject: [PATCH 7/8] Fix da sofas Flips the north and east sprites for sofa corners, because the layering for those states was messed up --- icons/obj/sofas.dmi | Bin 19937 -> 19873 bytes maps/stellardelight/stellar_delight2.dmm | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/icons/obj/sofas.dmi b/icons/obj/sofas.dmi index 9864a923acc55fa28362298633c99cc6db84c329..b8ef1d5c0a041739ba830847eb998d1a6682dc09 100644 GIT binary patch literal 19873 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 KO^cCEr2hZ{hiZoa literal 19937 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 Date: Sat, 4 Dec 2021 07:17:40 -0500 Subject: [PATCH 8/8] Another capture crystal tweak You can now destroy the crystal to release whatever is inside of it. You can now relinquish ownership ownership (without releasing the mob) You can now toggle ghost join on and off on AI controlled mobs who have been caught by the capture crystal, rather than it being automatically on. (Once a ghost joins, it cannot be turned on again, of course) And generally cleans up some of the interactions. --- .../objects/items/devices/denecrotizer_vr.dm | 4 + .../objects/items/weapons/capture_crystal.dm | 86 ++++++++++++++++--- 2 files changed, 79 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/devices/denecrotizer_vr.dm b/code/game/objects/items/devices/denecrotizer_vr.dm index 70640f2bb8..4a6160b242 100644 --- a/code/game/objects/items/devices/denecrotizer_vr.dm +++ b/code/game/objects/items/devices/denecrotizer_vr.dm @@ -76,6 +76,10 @@ // Clean up the simplemob ghostjoin = FALSE ghostjoin_icon() + if(capture_caught) + to_chat(src, "You are bound to [revivedby], follow their commands within reason and to the best of your abilities, and avoid betraying or abandoning them. You are allied with [revivedby]. Do not attack anyone for no reason. Of course, you may do scenes as you like, but you must still respect preferences.") + visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around") + return if(revivedby != "no one") to_chat(src, "Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out. Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences.") visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around") diff --git a/code/game/objects/items/weapons/capture_crystal.dm b/code/game/objects/items/weapons/capture_crystal.dm index c30e47b08d..681ac12a9e 100644 --- a/code/game/objects/items/weapons/capture_crystal.dm +++ b/code/game/objects/items/weapons/capture_crystal.dm @@ -28,7 +28,7 @@ if(bound_mob) if(bound_mob in contents) unleash() - to_chat(bound_mob, "You feel like yourself again. You are no longer under the influince of \the [src]'s command.") + to_chat(bound_mob, "You feel like yourself again. You are no longer under the influence of \the [src]'s command.") UnregisterSignal(bound_mob, COMSIG_PARENT_QDELETING) bound_mob.capture_caught = FALSE bound_mob = null @@ -114,6 +114,8 @@ AI.set_follow(M) to_chat(M, "\The [src] chimes~ \The [bound_mob] started following following [AI.leader].") +//Don't really want people 'haha funny' capturing and releasing one another willy nilly. So! If you wanna release someone, you gotta destroy the thingy. +//(Which is consistent with how it works with digestion anyway.) /obj/item/capture_crystal/verb/destroy_crystal() set name = "Destroy Crystal" set category = "Object" @@ -124,9 +126,56 @@ if(M != owner) to_chat(M, "\The [src] is too hard for you to break.") else - to_chat(M, "\The [src] cracks and disintegrates in your hand.") + M.visible_message("\The [M] crushes \the [src] into dust...", "\The [src] cracks and disintegrates in your hand.") qdel(src) +//If you catch something/someone and want to give it to someone else though, that's fine. +/obj/item/capture_crystal/verb/release_ownership() + set name = "Release Ownership" + set category = "Object" + set src in usr + if(!ismob(loc)) + return + var/mob/living/M = src.loc + if(M != owner) + to_chat(M, "\The [src] emits an unpleasant tone... It does not respond to your command.") + playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) + else + M.visible_message("\The [src] flickers in \the [M]'s hand and emits a little tone.", "\The [src] flickers in your hand and emits a little tone.") + playsound(src, 'sound/effects/capture-crystal-out.ogg', 75, 1, -1) + UnregisterSignal(owner, COMSIG_PARENT_QDELETING) + owner = null + +//Let's make inviting ghosts be an option you can do instead of an automatic thing! +/obj/item/capture_crystal/verb/invite_ghost() + set name = "Enhance (Toggle Ghost Join)" + set category = "Object" + set src in usr + if(!ismob(loc)) + return + var/mob/living/U = src.loc + if(!bound_mob) + to_chat(U, "\The [src] emits an unpleasant tone... There is nothing to enhance.") + playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) + return + else if(U != owner) + to_chat(U, "\The [src] emits an unpleasant tone... It does not respond to your command.") + playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) + return + else if(bound_mob.client || !isanimal(bound_mob)) + to_chat(U, "\The [src] emits an unpleasant tone... \The [bound_mob] is not eligable for enhancement.") + playsound(src, 'sound/effects/capture-crystal-problem.ogg', 75, 1, -1) + return //Need to type cast the mob so it can detect ghostjoin + var/mob/living/simple_mob/M = bound_mob + if(M.ghostjoin) + M.ghostjoin = FALSE + to_chat(U, "\The [bound_mob] is no longer eligable to be joined by ghosts.") + else if(tgui_alert(U, "Do you want to offer your [bound_mob] up to ghosts to play as? There is no way undo this once a ghost takes over.", "Invite ghosts?",list("No","Yes")) == "Yes") + M.ghostjoin = TRUE + to_chat(U, "\The [bound_mob] is now eligable to be joined by ghosts. It will need to be out of the crystal to be able to be joined.") + else + to_chat(U, "You decided against it.") + /obj/item/capture_crystal/update_icon() . = ..() if(spawn_mob_type) @@ -193,6 +242,9 @@ return knowyoursignals(M, U) owner = U + if(isanimal(M)) + var/mob/living/simple_mob/S = M + S.revivedby = U.name if(!bound_mob) bound_mob = M bound_mob.capture_caught = TRUE @@ -241,7 +293,7 @@ to_chat(user, "There's no chance... It needs to be weaker.") last_activate = world.time - log_and_message_admins("I got [capture_chance].") + log_admin("[user] threw a capture crystal at [M] and got [capture_chance]% chance to catch.") return capture_chance //Handles checking relevent bans, preferences, and asking the player if they want to be caught @@ -257,6 +309,9 @@ log_admin("[key_name(M)] has agreed to become caught by [key_name(U)].") capture(M, U) recall(U) + return + to_chat(U, "This creature is too strong willed to be captured.") + playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) //The clean up procs! /obj/item/capture_crystal/proc/mob_was_deleted() @@ -279,28 +334,36 @@ if(!cooldown_check()) //Are we ready to do things yet? to_chat(thrower, "\The [src] clicks unsatisfyingly... It is not ready yet.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) - else if(spawn_mob_type && !bound_mob) //We don't already have a mob, but we know what kind of mob we want + return + if(spawn_mob_type && !bound_mob) //We don't already have a mob, but we know what kind of mob we want bound_mob = new spawn_mob_type(src) //Well let's spawn it then! bound_mob.faction = user.faction spawn_mob_type = null capture(bound_mob, user) - else if(bound_mob) //We have a mob! Let's finish setting up. + if(bound_mob) //We have a mob! Let's finish setting up. user.visible_message("\The [src] clicks, and then emits a small chime.", "\The [src] grows warm in your hand, something inside is awake.") active = TRUE if(!owner) //Do we have an owner? It's pretty unlikely that this would ever happen! But it happens, let's claim the crystal. owner = user - unleash(user, target) + if(isanimal(bound_mob)) + var/mob/living/simple_mob/S = bound_mob + S.revivedby = user.name + determine_action(user, target) + return else if(isliving(target)) //So we don't have a mob, let's try to claim one! Is the target a mob? var/mob/living/M = target last_activate = world.time if(M.capture_caught) //Can't capture things that were already caught. playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) to_chat(user, "\The [src] clicks unsatisfyingly... \The [M] is already under someone else's control.") + return else if(M.stat == DEAD) //Is it dead? We can't influence dead things. playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) to_chat(user, "\The [src] clicks unsatisfyingly... \The [M] is not in a state to be captured.") + return else if(M.client) //Is it player controlled? capture_player(M, user) //We have to do things a little differently if so. + return else if(!isanimal(M)) //So it's not player controlled, but it's also not a simplemob? to_chat(user, "This creature is not suitable for capture.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) @@ -329,13 +392,16 @@ to_chat(user, "\The [src] clicks unsatisfyingly.") //We're using the crystal, but what will it do? -/obj/item/capture_crystal/proc/determine_action(mob/living/U) +/obj/item/capture_crystal/proc/determine_action(mob/living/U, T) if(!cooldown_check()) //Are we ready yet? to_chat(thrower, "\The [src] clicks unsatisfyingly... It is not ready yet.") playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) return //No if(bound_mob in contents) //Do we have our mob? - unleash(U) //Yes, let's let it out! + if(T) + unleash(U, T) //Yes, let's let it out! + else + unleash(U) else if (bound_mob) //Do we HAVE a mob? recall(U) //Yes, let's try to put it back in the crystal else //No we don't have a mob, let's reset the crystal. @@ -346,7 +412,7 @@ playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1) //Let's try to call our mob back! -/obj/item/capture_crystal/proc/recall(mob/living/user, atom/target) +/obj/item/capture_crystal/proc/recall(mob/living/user) if(bound_mob in view(user)) //We can only recall it if we can see it var/turf/turfmemory = get_turf(bound_mob) if(isanimal(bound_mob)) @@ -375,8 +441,6 @@ if(isanimal(bound_mob)) var/mob/living/simple_mob/M = bound_mob M.ai_holder.go_wake() //Okay it's time to do work, let's wake up! - if(!M.client && !M.ghostjoin) - M.ghostjoin = 1 //Players playing mobs is fun! bound_mob.faction = owner.faction //Let's make sure we aren't hostile to our owner or their friends bound_mob.visible_message("\The [user]'s [src] flashes, \the [bound_mob] appears in an instant!!!", "The world around you rematerialize as you are unleashed from the [src] next to \the [user]. You feel a strong compulsion to enact \the [owner]'s will.") animate_action(get_turf(bound_mob))