From 57748fcdc8474ba1c51d053bc7442f95a90e8687 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 15 Dec 2019 22:28:41 -0700 Subject: [PATCH] changes --- code/__HELPERS/custom_holoforms.dm | 8 ++-- code/modules/mob/living/silicon/pai/pai.dm | 45 +++++++++++++++++++++ modular_citadel/icons/mob/robots.dmi | Bin 179052 -> 179056 bytes modular_citadel/icons/mob/widerobot.dmi | Bin 647271 -> 647279 bytes 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/code/__HELPERS/custom_holoforms.dm b/code/__HELPERS/custom_holoforms.dm index 70137db4d3..77823cc012 100644 --- a/code/__HELPERS/custom_holoforms.dm +++ b/code/__HELPERS/custom_holoforms.dm @@ -1,10 +1,12 @@ // Generates a holoform appearance // Equipment list is slot = path. -/proc/generate_custom_holoform_from_prefs(datum/preferences/prefs, list/equipment_by_slot, list/inhand_equipment, copy_job_first = FALSE) +/proc/generate_custom_holoform_from_prefs(datum/preferences/prefs, list/equipment_by_slot, list/inhand_equipment, copy_job = FALSE, apply_loadout = FALSE) ASSERT(prefs) var/mob/living/carbon/human/dummy/mannequin = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_HOLOFORM) prefs.copy_to(mannequin) - if(copy_job_first) + if(apply_loadout && prefs.parent) + SSjob.equip_loadout(prefs.parent.mob, mannequin) + if(copy_job) var/datum/job/highest = prefs.get_highest_job() if(highest && !istype(highest, /datum/job/ai) && !istype(highest, /datum/job/cyborg)) highest.equip(mannequin, TRUE, preference_source = prefs.parent) @@ -55,7 +57,7 @@ if(user.client.prefs.last_custom_holoform > world.time - CUSTOM_HOLOFORM_DELAY) to_chat(user, "You are attempting to set your custom holoform too fast!") return - return generate_custom_holoform_from_prefs(prefs, null, null, TRUE) + return generate_custom_holoform_from_prefs(prefs, null, null, TRUE, TRUE) //Prompts this client for custom holoform parameters. /proc/user_interface_custom_holoform(client/C) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 756cae69ca..ff41b7b383 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -311,8 +311,16 @@ //Basic /tg/ cyborgs .["Cyborg - Engineering (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "engineer"), HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Engineering (loaderborg)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "loaderborg", HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Engineering (handyeng)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "handyeng", HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Engineering (sleekeng)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "sleekeng", HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Engineering (marinaeng)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "marinaeng", HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Medical (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "medical"), HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Medical (marinamed)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "marinamed"), HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Medical (eyebotmed)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "eyebotmed"), HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Security (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "sec"), HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Security (sleeksec)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "sleeksec"), HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Security (marinasec)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/robots.dmi', "marinasec"), HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Clown (default)"] = process_holoform_icon_filter(icon('icons/mob/robots.dmi', "clown"), HOLOFORM_FILTER_PAI, FALSE) //Citadel dogborgs @@ -321,21 +329,58 @@ curr.Insert(temp, "rest") process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Engineering (dog - valeeng)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "pupdozer") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "pupdozer-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Engineering (dog - pupdozer)"] = curr curr = icon('modular_citadel/icons/mob/widerobot.dmi', "medihound") temp = icon('modular_citadel/icons/mob/widerobot.dmi', "medihound-rest") curr.Insert(temp, "rest") process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Medical (dog - medihound)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "medihounddark") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "medihounddark-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Medical (dog - medihounddark)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valemed") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "valemed-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Medical (dog - valemed)"] = curr curr = icon('modular_citadel/icons/mob/widerobot.dmi', "k9") temp = icon('modular_citadel/icons/mob/widerobot.dmi', "k9-rest") curr.Insert(temp, "rest") process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Security (dog - k9)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "k9dark") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "k9dark-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Security (dog - k9dark)"] = curr curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valesec") temp = icon('modular_citadel/icons/mob/widerobot.dmi', "valesec-rest") curr.Insert(temp, "rest") process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) .["Cyborg - Security (dog - valesec)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valeserv") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "valeserv-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Service (dog - valeserv)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valeservdark") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "valeservdark-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Service (dog - valeservdark)"] = curr + curr = icon('modular_citadel/icons/mob/widerobot.dmi', "valesci") + temp = icon('modular_citadel/icons/mob/widerobot.dmi', "valesci-rest") + curr.Insert(temp, "rest") + process_holoform_icon_filter(curr, HOLOFORM_FILTER_PAI, FALSE) + .["Cyborg - Security (dog - valesci)"] = curr + + .["Cyborg - Misc (dog - blade)"] = process_holoform_icon_filter(icon('modular_citadel/icons/mob/widerobot.dmi', "blade"), HOLOFORM_FILTER_PAI, FALSE) /mob/living/silicon/pai/proc/default_chassis_pixel_offsets_x() . = list() diff --git a/modular_citadel/icons/mob/robots.dmi b/modular_citadel/icons/mob/robots.dmi index b47ee128963f488009a285113a456c97e94f44b7..337c693d0a8a63482e05ae9339b98ea0fc642b43 100644 GIT binary patch delta 1514 zcmVKP9or|MUz3(Dk4332Lz6-1zJdNr_8qJZgUbNLb z4eJG(&5^iXu-!b3>P0p)N5Xp1?ab4_jntm#1Nsy`fyj5HLy^yu%>o;L941a6tQ9>< z3^1q_I((i$R4aV+9AH>0u=hF=R}1dFo{sA+g+eAlj{ygejIVh%{mDQ00FEDVFY&|2 zybolg^cWoUg&iE|zm{llV>_gmd+e%!X4@Lh`b@vWK9E7sV^;+_I}@Uoi&ySY%a;0U zm1tBW7MK}lG%z*Be0**fL~lYvz%6_F^T-}wp3}b&s0|H^L z4iQCMd3kxXyFf%lL=ncf>9GP(1%Dldr@Xv8+Fc+bBBBUWWZFtA0Ly=Z~2Mp(Wp?7ZF>E5z1_f z7@Lt%p83}kT1qj|*F}Qw(u+tf#Rz4#MXb%pa9Y<*Xeq@+U#BHy--mN=pMOKg$LEwn zM92H*&~x-0oEq&1F*pdgM%=Rr#yz&%bFB8WGR7m`R%Ar?ryrv2{SU+517ZTNBO)Rq zqVbKp38g%PVaJXg%FKp9LOEt40u>QbrY%52LxWNzkT;6d;&zw*Vl*@~AZ6Nuu==bD z-=!C}&m%JMxBOM`Z$CplCV!&LZ%u3|#YA5h0lrHw&U82_(Y{IAvvw~m`z>xEkdj12#)^;lPn>KzG} zyaXfMr4$o=9T5=`5sgb9%0Z67(=epY52>&qFTHRKp7wk9ico~JJb$6Ox*C9cSxBHk ze`8}KGBY!!P}|MS%#?iZdLfe^lb3;ndZ!OhY*oHdwQTy%sP|#{?y8s?^u-d(UtK5Q zuf7wp*F{3j|N8Byd~g1r`3zqLP}-b|`#%s-bXkvewTO#zzX!MgxRimu`!N6`Be6C3kAJdj=Sv8?fHINS5fKp) z(fC4|0pU$9LIiqF3%lgR`Cu-R-%f4mC<_4V~QeE2ZR%E|y-o3&uIT0@HGU3Bm+ zJopwm%B_cK87DZ8NXlQ`RWQxfFzRhNns;a73fFL3w z8b^6~c{{YbKtx1D5f=7cFrvw7wF>_3I1wvMCX*2Aoi>Pwh=_=Yh!V;F56QX>b=yv| Qf&c&j07*qoM6N<$f|+~FrvLx| delta 1510 zcmVK=sDwB zsOlIjyWCrD_=a!N#Lz*i>OAX%k5KGOy@Zmm&`%&6pcfL|5g8~02-LDifl_vGe7~+q zbm29e08y>z;BYXg)sTfjRI4G2Yc*t1t-*0H0is%GTYU;fwF1L;0Aa1*=yfot)skH4 za1!q>(=BN)(;;6mgpo=h4dzJXi;HKGZ!V5T^}dUEF*p*|`!29@@HDCyX*5T|deK(% zG^`hBHb>%m!FKaBsu$VJ90}`1w=+)zU!?X#AJ9?w1S021ha$(5%>o;LTqaH+tQEaV z3^1q_x_q8MR4aV-9AH>0u=hF=R}1dFo{sA+g+eAlj{z5ujIVh%edHf}0N0PWm-yvl z-Ul*LdJGQw!VV7fUrRK&u^rOOJ$6+Z~IsFUI8h3S^)Jf`teglVo0|B>w0|H^L4p9`8 zmzPJo3q(XjL=nZe?Xdz-1%F+*%FD~OY@UdSh$!YLGa!O34e;K};j_;^3wWIObHVn1 zn9MQ+dG>>M`;Co_O3^|7DKC+j>=F#`HoRka7bgs<^T*7B(30=ci-;}72xYcKjLpa> z&;08NEv1;~>mtE-=|!ZLVuUi=BGzVPIIZg@w3K3^uhWvU@58yb&wrug<8w+OqT~H@ z=s9{0PL1}17#sv#BktJ*;~v}XIad2w8RHReD>9<{(+|=1{)b`j0WpEs5fKp)(fG#Q zgi@Ztuw%y#WoAPlp&T<2frms4%fBkk;zBm8ReawFV->80D_(lX@r#S&FFg^qbx)zK$-H#QmwE!?eK#Nvk!zn1l zMDamZ@HZ9+PJh4|q1O=+5fM>PN&&)ZwF-eYYqVG_!oBxxlH|gIAP6{m^ysLi38kf_ z0In^)2v&UXw;#jh%a?`5#zraBnFDfB1h`g&kd>8{jafD^5#B|J#>U1`n@M`d^uA+A zC~Z!~{U3-Zx~#{#TExY<-ve9#T*^S-{TP6ek=PpiM}OJ1^Cg5`K$*zvh=_=YXnY~f zfbb?4Ap$+81>fR`$z%cm*laeXKi&m_`uchtK71HuWn}=a&04Tpts%wpE;@J@9()TO za%{OjzI_h)4H6NBz~6wFgXF*_dTw}5iHL}ZwBdIT2;bXA0@wC}2!+36{k1t+D_5=@ z6HDF@(tlSt1p$A@`de=C!F$_8S-)uxesy?;_%_axP1AtFp=2^R;yLGeEG6)`0!z+_#n6K z9do?C5fKp)5fKrQ&k~Ga`#^Z}Dl$kw@ckZq1%E3Bgt}25|J8ki=rqsG&I0uGR5Qo-)6H(RaI3iKoAkpxXR1R zqdVONA|fK9hzk2I7|~?4S_OZ1oQM@BlSv5mP8&o-L_|bHM2Y182MOm5b>o#dx&QzG M07*qoM6N<$g1;frS^xk5 diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi index e574766d704ed216fe69d08d64aae4569b6a2fe9..5372f494d085fa781d7f2e9d0bbfb7971a242292 100644 GIT binary patch delta 3952 zcmcguc{J4R+fOOa(?Xs{S}YSSlMo7nv9zGVjF84CrZAQ)lNgh2zU`Jl$yP*4n#@?5 z8KIacTgVJqXEcZyW^9wOH|96J@8g{JocH(NyWHn|&bdF|&$;hwIoEw%Uv3R}x(57k zztmFl0bM|+^&sqU<+j_zfeo;exE)Lj^d+_ZvIF`SPGV1{Q3j7&Thi!*6$>BhcP~{H zcb??96Pv~iAeC=jUoYwJE(%# z(^1r!4;4_Avnk1xe7w_^GvL9pX_lTpt|AQ*LbrA39c}okn7ffMt!#8|>(Lh` zZTsq#*(`2bvC^VeyLfVI*C(H#YW8}x(bm`Dek)0 zJRT@0M_6*5*MVUo-*eL*ZGJoEmisxJB zqLL6HiEN_txv<%At`fWG0sVBVovU)*|IXtdc3BQ?a=JI<*Y$L4h)4agYtrcNYq1${ z4cv*RCA#|WOFuUq`x3{O>bY!tity%MGT_`x9Xo0|bA0^y8NvDW21)Am2H)`;H@whz zsj_9$=fgsz?4L@bb#uB}e4283A@h1K)x5K$T0 z7hDYXWi=7~P!R@`oA8jy0WqLF;U{F|qK$LPx>_DO5l?ThGqN)mNe z*QX-tdJivGKJS}K8WS@;pNcQl8m)WpazA{1=(Z^7t+_vU$H?81I`6(?Vb__{bse#) z(&K-GC${CP-W)!Z5(YKzvxpz8$T8rGmFupFpA_3ZP>n&{I_8%C2ux5LbTl&^Ag>S` zf9SB4q9N3_)zUj^(lKh%QWC6}V1op|`9=vgNgyM^ALVM&f0ApZ;>uea|Gc;jC;+8e zx?cB+d%m$Awp|A9D06~Se6#GhoEi6_(@oX6g~gmmjG2O&4XiC!$`uUf>`$tVJ*sVU zs{LjC$Pt{6PrvH<15|n9g*|@zmuBB3_aYgyw;Of(W!C+(7Nh=pBeh1_HcKh3?bj7; zmk7W=^uH_rKf-_7|KGG85AV~NF}*?4BFtg5bm~9-jQhLsr(isP^qR5ZL2?g*e_B+0 z{hVSX#k?H)Wd#7K=x@>MU-2Ebn7@xefJBuynHidh;!@G(wM0FzteFSDsrrzEgBv!| zQjhpxQikkeqqh{ zjA>+mRG%2)xLhdT)^Qo*nP(h5KlHl8HpR51I-RuKSqKF@fiN!pak2Q7verbg`@j=C zdv@ecpNnBSK*!U|bUl~ZP*FPf6$O{SB zvs1SDV{2_}Y|OqQNDFmw`E-f$wEhaJ*OeDK>dnQe9uP)mnklPI;qGgud=HrC|4Nfv zrTnU=lgZ?{+K;Z5bzmkB`3$t?xvH~(J{>)6znYIpN9zHrX~TX|6^4^v+|P8>S5*kF zi`v=DtX06~bY32?55Q$EM@i zog7>11LOhvRgELc+w#iaDA1ic#)x@uFVZIS=As0h z6Ze8t2M+&S^zI+eF}DG=<~IpU+)Pr+dSriI4Fro&Vz50yQb!}~p-Ugag07h6KtmpH zLlw;SLtbH*NA>ep9Xg@3P~PA@3=ddvnlOAmzQV!-1C+={8}EnxtYUa zvFxc;L z8tn!V8~P7{9T*(Z6cp;*M~l87sb{<4PbYLnJ@=fJkr$2C|Ds5eDxo^vjgd-9tpskh zZec_=$1gkDz+T{!ZQ7RzpPm#&gpzx-CgJZJ`^5k=gSfK5cxEeK8E#ouZ{)j7ae9lj zMH(L>)VhoZHBf%7V&IU*@-kYQiv^4P)pliRER-j7FXWAOAyeS?S*31Wt@a)!N>hPR zZ4=R+W~d|vhN-T8u)}D15~zlpLFcIaOY{I5Q2WL7iU6U4;mb6z&#&R(8U!}uY7h4$u&a@Zn7{xjS z2-GKuM_OlTiR`%7qKtfbdR?3 zgm*!2u@k$*$@QrrrT3+lNw{(n*%!FqF+qlT0km^h+*>1GHPdAHaq-NdxOYXm!Qjp#l=9cSz5ohCBzz;5U&qpjcB+h9LkK9;lR6p z6sRf|u=ZH3lA~M$tj`B4bX;T(!MqS9CEfD14#tPTk(3V*5N8;curlo8`(7@3YBdpE zT~YomGEnHQGjv^ypmp)db7@@Pv>&{=uI1Il5YV&nW(Gsps*^E-@DSxOrb0s=;Rep8 zghmA);gM`s02ndSg&3jcc*!PNQJtE8aIr$6ATCv9RkTNRiSO#`9az&mdM=f;X zc8rHvT6Ska<6jdB$G(voQbgW{XNlbag9xg-NVB&-&V2OS_x`=4SkmWx&?l!ugfpAl zWuClEtm(kVUz5);AI)fT>6&OW0Ijh)YwzTi;e9md8+e!Mhm(pK4vy?tt4H_@6y`Zu;AUHhaoFeKS8MuyL{FPZdrWt^6h^C`xG-j delta 3944 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