From 39ed979510c37c90f19fbf0eb7c7b04a09bf0a86 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 5 Jan 2021 20:26:21 -0500 Subject: [PATCH] Added command to give yourself skill points. adjusted social window Changelog --- CHANGELOG.md | 2 + assets/voxygen/element/misc_bg/social_bg.png | Bin 6369 -> 6109 bytes .../voxygen/element/misc_bg/social_frame.png | Bin 5880 -> 6579 bytes common/src/cmd.rs | 15 ++++ server/src/cmd.rs | 80 ++++++++++++++++++ voxygen/src/hud/diary.rs | 18 ++-- voxygen/src/hud/social.rs | 10 +-- 7 files changed, 111 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c00aea2b9..c293dae685 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added an additional Ring loadout slot - The inventory can now be expanded to fill the whole window - Added /dropall admin command (drops all inventory items on the ground) +- Skill trees ### Changed @@ -38,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - SSAAx4 option - The Stats button and associated screen were removed +- Levels ### Fixed diff --git a/assets/voxygen/element/misc_bg/social_bg.png b/assets/voxygen/element/misc_bg/social_bg.png index ef4e6cba52f75aeced4eefa4613cbf00abca5d13..ecbdda811c8c187046cf2b927df8ffaec6cca634 100644 GIT binary patch literal 6109 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 literal 6369 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 diff --git a/assets/voxygen/element/misc_bg/social_frame.png b/assets/voxygen/element/misc_bg/social_frame.png index 2aabd5a7e8246611e083ce12ebd19e8cf3e7612d..ea9bf1349f9ff5b84e3a98013a5a08080cc2ece4 100644 GIT binary patch literal 6579 zcmbVR2{@E%-yel+9S&JqXc|(7X69iK6Q%5hqEVJ;1~Z6R%-Dt&jrUaID9YACC#CE$ zmh8<}X|Yu*Tb9apWSWp&`R-@Pd(QdZ?|ZNBb&bn&-}nFdFTelq_rEVhAF#JtEwxSx zfk3Rbu{L)^AVgHa_j3txu+tVsxC?$rGOS%#2n0qQ{uT+ly(@zj*KrZ(~tNp-GUx32HYS5b11p z0BJ^Nl92`&2<-(yIOKLCjE;exzV7yINL@%5!s>vJK3ZoxUe6GZ(?u?Qp+GdIHwEu# zZn+c-tV~e8K|u^W78@EGiV4MG=u981j**cO7ShG)>Y{-Kn#HCCk;2e4miiA5=46%^ z(~lA4N2eiSk0eieaF7WKWV%=am9gxW##(|20EP`CF|axq2rfxz=b!9j=CfH)E1XL3Ad8P7nCer~^MzM(XNfbdXyQ`_a7Vp{!s2 z^a9zO6ht;b!Cgb^=ztGF7s5kEcs)oP(!oQ}qNyF-+mFItHq}8x;G<8_#o={z@cKG` zF$I+ICIylHt+BTkoHgt>#a z_G5vrvX`WDkQ})56yS#x(gjcQf@NTW@`C$M_C_sj`~AlVEV>Q#B?G7b2QL=QSaeEI zD2Ykl?E}#Ix4grG9>T)s90T z)|lCt?ZmM@46iSM9|o-M+O5DL!^qiW*} ze^F9#6}*h# zcSi_J1RYa~M|~z|oeC7`F{jplJ25a(dgNhVI_r?E&(Tx-!NQV!flKq-lTB{*wVAmY z6+!(4wco=l$KFZ}q&+XxpQd2nCP{l#PhLUR4C=Uv1-@nlYLcZIVA2;4XOFW(SR)Y2JIBb+qO>?yOj6~R2a`S1a}Ct$Q(PuRPp z@qopZ@H8k>_{4rg&iWims7iB$s-+KgVF$#rYqWX2I7y1Zey$T_H9@p*wa6B|cX^kA zi8lAJ(XY3&vX~!n4*g}Gn9Z5;*_gv`_TY=fSW3KNWlVS4W`7*_f_##e{!Xubn)N;8 zqqpjn0~;Pc3Uf{yzpK_@2ORR^_Ks09X^#)|AG5Tx?6r+$LM}14TZ>N3Y_J{ipRBN@ z=5PLVHSPVk6}Zs@!SUHj`x3eA8H}Ue_$xy0mCJ?o3TK0z9F6z2X5}>(?o-^@8j@Fp z_2fv}8V`P>a0bj+WQ7oaeaj5HgF@()oA6_5Num~gbiVF`kCL4uo3VunJ+LlAY z@rplTB*Y7hkE^yiS;QCTCHvd@@q&^NUn}gjR6XnK!FY7aL7HJA^;ugd zXZP)g+M4WEnnlFrA^T2?D_uAO*pZ^}J>FokDIsga={ug@e|&TA*~6&Mzg*-0(b-)S zvT`!DvB}N8op?A6J7r9wW}zA9@w4-*eY(|IFs+_LlerT(^h#g{aYn-@83-BPQ23@>Tb>VC)S0 zw>nn7Cj_S?D#Ioh;?`lgi@uo!Q?Sa6y+)!Jy;9HuJ7s`{SEmX_wvRpCs{5$ft zNfFT>TxbQN3UlWXJ9QPT93ZOfN6i%OZz%HBb!9nsd@elCoh&*~PW0GUJrNL`zV%v* zCOZe?P_oPR+O(Ia+5u_J&IeSDl-&L?QsKvrys>QezVO|~+e~Bj+Ro~0Fuk`Y`^S1k$7KM|7RHWs>Z$7SeIC2~6 zrO7R~L@$k&b{v&LI~w8sHi^WK`^ufl8?L`Hmd9??pU~1iI>$e;-=yu+cmM8s$4L*> zw5*=dnAwN-CpxwhY=~6T5!DwF{Dc}G7oU0)`A;MI>8oQ+9+j84ncxSHX(YD$zu0k$ zt|{kJ5O}=1jeKsQN2^Can9BcF^exXPd{c~7hwA3~{?_*5xwic=UB9(q>(vx0b@;^} zwXpJ6Y3+pm;hE0C^IbQGCq718s4bhiP>^`Nh2UO0{O$2r-Suwnr+AZ^4tu?P^=Ib< zXzhKI`1XmWeD-|xY;1T}`$#x>0#)NN+4eHw(lObNk@AQqLys^v!M}04zHw*QrMC3k3#Wd)7+tQsKJkIir~QWplhPfblk?M~EP*UbsxljI}@VF{rq-nVYR~B(Z8wI=ISrZQk|K zHBMYQd-b*OiHg17>jtB>uSaB9RfpwU9^xi7oFxrUpFIS*oT;oh;8JJ&lh~7%wI9XQ z$h8r;pK?fp0q0hWj$88x6S(zRIm5HQ*?SD66qCig53Zni;;$yW`s{mApWw(NXy@h( zyz$*cFz9Sfl1xwcQEbqru~HjfZKS?)4=xXvj#s|0t+irJLqo`Ar_+`;TAWQPoEam| z+I}}mDP@RF+6y@#s2lUCt`k4)&Z#gAncV`;*_E#+nAfYrXe~;kC-Y=8#ai-j9BD`b z7tqJwDDR{^IGa+M1N*Gk=VW-L=1}!Ik2G8+et7li*h1s5oSvJSoDA<8t0gNnj5cL| zzGfPkvTbfh#}k9N_yzs8mm5XRp!5iON@3AfOEOG(uOh)qk&PPcm>dheXHcGxi0x@1fTTUT=L>WV=Jb zw)EWdv%A4T6(?HySFTb6f6eK&Jc0r(J2PH33ic|7yMpD0XPHhsa%z1hG@a-C(U|;; z*rgI;cGiP>S8*6owh8YMdUGZd!gcBsKKA(-wXOqYc3wzUZH!sl6qR)*YuCd+qOGo7 zHe}sh^X2Z!sZurO^f|Oi>nzbJVG5U?7ACNX7L95y`eUl$S>mp_yC2)1*h>!hq^CKn zwv`OpL_0s(cxrw$PM6k+;f9{`2p)2AYULhuh}aT;s5AJ`*^NzVUzF4R@vFwy+V3B^ zURTy?6OBx!qDU9q3QQ;I5U&{&h;sPm zh;x#OY37hiLhIudJX2|SDIqSJ5ev$I&qcAkYg?bKZ$*_mBUMx^IK7)yI3m2Q85?AH zk;Hoi#1E8e(UlxtK3c`bLrx|r9vLQihG+^sw}vd^O(8>bsO)vj1`s7edf+YNC3v;> zo)Y}3DI`}V%4%A4Q%39q8<6ZjgL~anl@ND@ZQwM>qCegct{%k_b2G)4l5L0r>8SI3 ze^{tLljb;Ba^k_Zsj}pcYF=1?;u4g>G6FGht#84&Z{6r>LdWK;>uy%@EeJI^^r zl*23Zk1q!Kynx%8!U~CpQ_jiS6eg?`v_3-&6sUm(y&poICSHygdJ$R+o39RcYtbpl zD^`~SmPi#)!zMVl#T6I@0E#n2B4}jY;6$`$$Im}-N|K6%eQL0G|LHCHSkf^$84dPw z5-&iD{@gJb0XS)4at@Z(V~cS(Y!P17R3fM#>bfYao_`FKOJ~2RyI!6&u%O1Er<1kScaTl(I4!qV# z0+9%l1mK%N2~|iKn@Hku54in64S-+Iq(L8DL6w}BoWMc=xR693W~}bIOwAwa12O+B zHx)o_K!kaEN=McTq{_%IDQ*w@XQhGbdu2r1;+0FNEWR}!xW?uuQ2RqBOh4YH4C~~2 z3y^eFSEcpgGFTKuHKB%~Rm*w?eF3C~3zTVC1g5!fGe~AqsR1pt+JI7l(f+BCrvgaX zdoi^Nu3=I9Le6Wb+yOmAu7YU_tB0(i5&`-_)Yk`;akg6xpiKcXJnbMPHh^WTI>i;D z024-=tq1I4(V3Bu%dqS~YhjSL3iVc(*@IMR%NGGnOe0r{!$c4&xv7<-b6%8lI<*RP zP<<6FH%>V^L<8h5B+imHmdA^5SZJtp>PHg4+~BWUraW97taG4l@d}s?ONPsgOWX9! zzfxRICZHAZ&k8}ZGPcE0UglVED3ILaX@>0Ct-178oMZF`yeATNtv%;xO{?$gPes2e@vy5(OXex*xtaxCS~A zCe-6!=nb=caRVkg7`t#koJS;{5;2&ecGdgE}}wyQzl3V1I5ZDdjOIyMeHe)SP*j)n_rH~Jn3CgfE;E}%A^rcYi?N1ZGq-+p&;BO6lVCw+@ zEmRV!6R=k}<%KuW^31Puh1>5Lj!sy82MpysP!r7Zw&)O`AR#odw}I{eryssvx&c!b zxmLIZyF{3A8DY^REtrO5a$+up56_$ds=~`UJu^o7*#O9qTF4f_LqgQ+)X$$ z?}wb>LpdQc7|zPkf0@O?(8QE=fQ$A!&%=}&K?}9r2g_~gqTYC^3U=1bDI_44u93yO zW8sTiwt<)8y9)3?fq#>TAW9#^u|;~-c=L>G(*WN5%wRfwVSZc|VH+518Nj=IM@mj6 zGD5UP)dHo0n3Br8_G}-72=N1V0iYej9v&$7rnV+1$spV{K(I(Ka1lHNQUw7th!8$U zrdA;u`owO;h$31zh40rys*4^}bK3(U`iO|9uqj6b%++3V8}JJzFp4B1z*Pf#*sr02 zXj{QUgyj-DO04Uf%ji7_;`wRT)uYN=z~vJeA;$8*e;odkRc<-=>EO@X3KFX+^KOEg z>L-|hU(A9RJlIxKpG<^oyLa3^O{jYg4c-53 zn+JPttiOH-|E!KyukC|ec3gdb(F~iiLL=fRZubGF^Qq?}=)bzMz7_RE2-|zMMe*d^%_jd2~y6@|{-q-cMKc7YaZF6bY&Oden0ITlAr zR>@C}6!6(9qn!`k%~bNWtiMeK3pOL}Y-Cv`cXibmEoobhpDFOoaA;^A!jrsiw!A^D zQm2=lTq0@9uQwe=9U~iPY<1cwuJvc#D3+t|x+Wk+%45CWOoq8+d6Oc$m<9sNINX%0 zg-ZTtoVwgvr2h-g(hos#tHM)C-y0lS z3143BY@8Qp-+i&1fgNQH@m=M(L%OsRV@8D4+b528vZv>U-+5o!obD|-;;qs={!7in z_dqCDvgnSzyg|4Yi`j(=;LDLbgZVLfa`D9xWCt&f=)iiG-aplb7dD*OHj5*i-saqR z!ra7b`O%V}Jn!@pHQu;$zYn)Enc|kS4^y8Pf#PpkvXF*_hn`=t=)e~7*4<&<F<+n(@-3SPV^2dkzn-o~7=e;<*>3i+~{<1*^V5!7Yj*=Vi(x*o_l>2rjqfk(7K!1Hk8oo$2^%51w&0x2=JcPFNCbtR;7k=Gl2A4AcqO zt95O*uN)pZs#?FF+bAcgN3BMvU$S&zhvhV3_ocV{%C#f!S?F3hE`40Q(hRzO0Uhq| z)R#Bn!_K=DUqF@rl2zEcUQ@K_aGlfx6ZprZ+ZG{%NN?i}Q$P3?b?o=q% z8rcwOkldDC&9LvpO@`_h9KW1n^-U|=;dt%s!UrQ#YsH3h*TTkPJ(>p zZF`j>rbK{EPKX^v2YXuT`sJn` zS_5WxW1;O_404cFWkz<2=B>jNYywdQ6*f7VX|zRD>9Fu8ec0oT7pT`RR2#Xa6-b-$ z!aS?(h3h;e$NGn}QlHJpw>n(3@vwNfzTC1=lFprkq1|fm!(ZUS8oVIc=1POq`Pk9b zoA3HF>tdhxS`E9G`KL9r7FJ=r(Yqz#3og@`XVc-yxui?DW|~@i&p=DSTrDT~rJtB# z+1YFUG1r(fR&#b?8>_q^eL2dEa>C%_czL57=LN6%l)T9{dW7W>W}aS<6&UvV2;F2n zirt=HhI%(WF-uO3G%vVPbKow&F1Tf8xXw^+sXEyID@k*r8mXJ~6Le6=c@@gMpBo{2 z6EzC0F%LAfbc%O28pB;r;<$JE+%g!p-d9}1T^!&fPTngL$ef`Z$E@nMvEMQt$vix= z>vFDPwt83-gA&OJRt<97+s-gF@|Kl1j5vc4Vkut@kQDrCmM<)@-$5LpP_|yPZ1why_IsM;4unt2@O%vrJ%Dzt2GZ!Xn-k{ot{#_j@d1KqCdf3V!I;WMsF&be^b z+Hz;~$b)hk_eIUTdkOc2{U`DQwd^?y9_H3Hjg6RErCOfeKXa09uq-^Pm&2fHGIth_ zf9|g`3wuy|3qHs=-{7_XB&t-~Z)gDbM*q3PgB!e+~tP;>-t#5?6z{XIoir z6q@Vufp+^PhmWPXgRjq!pN``PLl*UP*^!IR>?Wtpi@lz{*$re#0@l&kt*})y`>Y_J z&>XJuVkV}Ag58N|*c9NwhnB#4et}CZS=fir!h7^1d&uhrgQ@*?0LL3;Xi2s<^rqCV zSG1zC^bjeceXIB2{Cmy~2pZsOc$#FZI`+0Ag<9al>2rptHJ~{6OB>c4CcmC&8i}1* zeKosLw^UKJIvO!UUU)ut2g7UW(8fBm$A@-50Usrd^jNwidB;d`vSCu4E2CO-I+BDO z%V>KNeonjjnSMLL>*a9n9YL`;wC}zO**I-3U&wO7V>!3U4RZ&XEqNxny zw(;z2>#r{J9Ql;49nGOM==HhxHY#qqHSA8#h!lQUBdaZ6_DET7LxJJ4se`;xq&}`te@=u60YlywpI@Qao__2>d3Gvro3;5XHW)x-O~G8|CraS3!B@u_T~}p zb}0`#*O95?jX8dj*OFXfT%F;-dm>C`h6&dB3Efu5xyP7F?Os~6VgbF-_jT1|m)}>^ zKsOXYLDKZv5UsthTMH}>?^*bhRiCoT)jhT#DXdeNl|Pyxn#1wo>V1%vx@FKwDAG-u z@-kEDXpfreC{;WAGTfg+O@Bu(ICmp|>aTcHDg|JjzSaztMc3bRy5=3VY!@s>l7Tc4UrO=>Ov~x#l zMHeenA31fZg`k1+R0|=TvJhEI;Diw_-lpWR!?V|}Pty`RHPfg|%bXNfmhs(6P;;n;)YT!*&n_;8H zduEmaSk~04l)Pb<$e$~L;;H&w$Cw+8*fFH?DP&z}Z~&G}i~X~&CST7;C*$@H8d`O% zXU$l6lR&QT)3)p@=#eSN!9+o7>@e9A#~x7)P!;d%O>=I0L`n`Bh8d*G!f#zaH7H*B z7H)GmsFVVpi*b6rMvE;tYh_?|DRx!a$Q7x_gQ!TH49 z zwFCb@9UA@`Z5;W*Cfaqfgi;UYe36N|qx%WtFcHq~9#Ma4$qt9Zc)^PP{)tTI+pp~( zxkz4R4f0Oc@?Ud48m7$?@fR30H&&}qF|(7*TQ(rBg6 zfV;KQ1_E4%fLplf{}D_Q%P_zji8UML`~qIV+*Dx@EG94S>rxapC)w zWBa8UR<}ST46DROKocyUOzbt_rH>*6ES>URdV{snMF1oMq7(tg*6g>>e9!+U3RYJF z0XPcBMh6?;cZY$nmG_o61LId93im8U0gx9Faz+aAu=uV7BMS0wU+AucM&N7*dcUyr z#cjsHeI~!py|aBTD4ieitCX;xN^`PCO$tz*=<&o>NkJ`UOHMBh&_oDuBusu)p#vbf zRd?daY}03;W?z&Op<)tkXh2Z{0fL%A(0`1HD%M^FB(|_rMt4x zMfNAskg4-5t~oCZVeFc)MRE@s^lYCzX(y10Ee51VO+a`ih$kW+ zt|P#GBnk=7w33MA%u6a8-&#~-Al02n8;F>~Jy4|5bWcZ!f>LdkUKp7z(_cegYK&78G!Y&G(*Gx-ZYy|Gg z#M&wui-AH$fv8M85rsTZ+k3Gwhwma%+eOZU26N*L{(G0a*?p)C3pj93m;mO2jcOQ-z+d&jA?WVJJ* zer+Q?#t~w9o1%}=`*%F5e)Hq-@?(e23VnCl5};hoR1DM)kb#0Bt-T91 z)c|a_NiMOUCmrf@j#FK_D0JG}0H%-y2!9ZRZ6N5Wx2&FRS0N6GwgfGe*@FJ93)os# z05H+z`ITW?F*ykW4Je2f0eglJ)Y!t|t*{VSlz+3HDz;oBK8AkEcyH_~b`%eJSpjot z7IJrrg^E3HL(lIbo{X}z05^U z4Jfp0S!b9TqyJZ!=^Y}l3%&GI8>Zq8b>piEH{TpB*WF?bZl+H6k%QQFD9J##8n_l6 z_FAmk(;BG|>wZI_KKj*mGyde80XipBoCN+~bS5s(5Qetf6d`HJ#b3&Y_|1jtPfv*c zw;da>We7ooE%P^}rq;Mhz6zisp6(^oMLbKDP-=L*w z#N{c8Nqk1S&PbT(%EeEicSFmoDz(EPin3t*Tq=L)NZSx0zpbWWwaaf#%gP@tVNhM4 zZ33ivx4Ozy6hvqT7_u#!nZO>N11;M0B=~nT1MdsaZQpyukA4PRw&B0PvA-2w=B*2r zY^;pO&njQp5_PaugN2A2PXQJj3~^HB1>GJ$4C;B|yajxGCcb0!mu2&k#%S*l)+N_#Y7?J} zo1$XkxQSh1Ez8&z3^F`UEt{!h`{*Udf0oB#Ua*+rroS)rS?D@carH=Rb6N3UmK2S+ z@hRG5{r!;!%m}6fI}I=7r9}+!Z_--r#h+BQUF)GZiD%CDO>;{O>p77jm=hST?9|~q z+&9?fUezw@I3{In0DDWeIi@R*%2wYfa@#Ay$T`a&jnH>t_Kx6FSt!QSO)22;$dv!? Us9n|Izt({HMH`c{^XPm31G2qDaR2}S diff --git a/common/src/cmd.rs b/common/src/cmd.rs index db12192d91..6b5cfb26f5 100644 --- a/common/src/cmd.rs +++ b/common/src/cmd.rs @@ -72,6 +72,7 @@ pub enum ChatCommand { RemoveLights, Say, SetMotd, + SkillPoint, Spawn, Sudo, Tell, @@ -123,6 +124,7 @@ pub static CHAT_COMMANDS: &[ChatCommand] = &[ ChatCommand::RemoveLights, ChatCommand::Say, ChatCommand::SetMotd, + ChatCommand::SkillPoint, ChatCommand::Spawn, ChatCommand::Sudo, ChatCommand::Tell, @@ -149,6 +151,10 @@ lazy_static! { .iter() .map(|s| s.to_string()) .collect(); + static ref SKILL_TREES: Vec = vec!["general", "sword", "axe", "hammer", "bow", "staff", "sceptre"] + .iter() + .map(|s| s.to_string()) + .collect(); /// TODO: Make this use hot-reloading static ref ENTITIES: Vec = { let npc_names = &*npc::NPC_NAMES.read(); @@ -372,6 +378,14 @@ impl ChatCommand { ChatCommand::SetMotd => { cmd(vec![Message(Optional)], "Set the server description", Admin) }, + ChatCommand::SkillPoint => cmd( + vec![ + Enum("skill tree", SKILL_TREES.clone(), Required), + Integer("amount", 1, Optional), + ], + "Give yourself skill points for a particular skill tree", + Admin, + ), ChatCommand::Spawn => cmd( vec![ Enum("alignment", ALIGNMENTS.clone(), Required), @@ -464,6 +478,7 @@ impl ChatCommand { ChatCommand::RemoveLights => "remove_lights", ChatCommand::Say => "say", ChatCommand::SetMotd => "set_motd", + ChatCommand::SkillPoint => "skill_point", ChatCommand::Spawn => "spawn", ChatCommand::Sudo => "sudo", ChatCommand::Tell => "tell", diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 3df7c049a8..79a6841d27 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -112,6 +112,7 @@ fn get_handler(cmd: &ChatCommand) -> CommandHandler { ChatCommand::RemoveLights => handle_remove_lights, ChatCommand::Say => handle_say, ChatCommand::SetMotd => handle_set_motd, + ChatCommand::SkillPoint => handle_skill_point, ChatCommand::Spawn => handle_spawn, ChatCommand::Sudo => handle_sudo, ChatCommand::Tell => handle_tell, @@ -1987,6 +1988,85 @@ spawn_rate {:?} "#, } } +fn find_target( + ecs: &specs::World, + opt_alias: Option, + fallback: EcsEntity, +) -> Result { + if let Some(alias) = opt_alias { + (&ecs.entities(), &ecs.read_storage::()) + .join() + .find(|(_, player)| player.alias == alias) + .map(|(entity, _)| entity) + .ok_or_else(|| { + ServerGeneral::server_msg( + ChatType::CommandError, + format!("Player '{}' not found!", alias), + ) + }) + } else { + Ok(fallback) + } +} + +fn handle_skill_point( + server: &mut Server, + client: EcsEntity, + target: EcsEntity, + args: String, + action: &ChatCommand, +) { + let (a_skill_tree, a_sp, a_alias) = + scan_fmt_some!(&args, &action.arg_fmt(), String, u16, String); + + if let (Some(skill_tree), Some(sp)) = (a_skill_tree, a_sp) { + let target = find_target(&server.state.ecs(), a_alias, target); + + let mut error_msg = None; + + match target { + Ok(player) => { + if let Some(skill_tree) = parse_skill_tree(&skill_tree) { + if let Some(mut stats) = server + .state + .ecs_mut() + .write_storage::() + .get_mut(player) + { + stats.skill_set.add_skill_points(skill_tree, sp); + } else { + error_msg = Some(ServerGeneral::server_msg( + ChatType::CommandError, + "Player has no stats!", + )); + } + } + }, + Err(e) => { + error_msg = Some(e); + }, + } + + if let Some(msg) = error_msg { + server.notify_client(client, msg); + } + } +} + +fn parse_skill_tree(skill_tree: &str) -> Option { + use comp::{item::tool::ToolKind, skills::SkillGroupType}; + match skill_tree { + "general" => Some(SkillGroupType::General), + "sword" => Some(SkillGroupType::Weapon(ToolKind::Sword)), + "axe" => Some(SkillGroupType::Weapon(ToolKind::Axe)), + "hammer" => Some(SkillGroupType::Weapon(ToolKind::Hammer)), + "bow" => Some(SkillGroupType::Weapon(ToolKind::Bow)), + "staff" => Some(SkillGroupType::Weapon(ToolKind::Staff)), + "sceptre" => Some(SkillGroupType::Weapon(ToolKind::Sceptre)), + _ => None, + } +} + fn handle_debug( server: &mut Server, client: EcsEntity, diff --git a/voxygen/src/hud/diary.rs b/voxygen/src/hud/diary.rs index aa1f1d2a2b..9bbd451cd7 100644 --- a/voxygen/src/hud/diary.rs +++ b/voxygen/src/hud/diary.rs @@ -969,7 +969,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Triple Strike Damage", - "Increases damage scaling on triple strike", + "Increases the damage each successive strike does", &diary_tooltip, TEXT_COLOR, ) @@ -990,7 +990,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Triple Strike Speed", - "Increases attack speed scaling on triple strike", + "Increases attack speed gained by each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1011,7 +1011,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Triple Strike Regen", - "Increases enery regen scaling on triple strike", + "Increases stamina gain on each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1324,7 +1324,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Double Strike Damage", - "Increases damage scaling in combo", + "Increases the damage dealt in each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1345,7 +1345,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Double Strike Speed", - "Increases speed scaling in combo", + "Increases the attack speed with each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1366,7 +1366,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Double Strike Regen", - "Increases energy regen scaling in combo", + "Increases stamina gain with each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1636,7 +1636,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Single Strike Damage", - "Increases damage scaling in combo", + "Increases the damage with each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1657,7 +1657,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Single Strike Speed", - "Increases speed scaling in combo", + "Increases the attack speed with each successive strike", &diary_tooltip, TEXT_COLOR, ) @@ -1678,7 +1678,7 @@ impl<'a> Widget for Diary<'a> { .with_tooltip( self.tooltip_manager, "Single Strike Regen", - "Increases energy regen scaling in combo", + "Increases stamina gain with each successive strike", &diary_tooltip, TEXT_COLOR, ) diff --git a/voxygen/src/hud/social.rs b/voxygen/src/hud/social.rs index 045ad96726..fb0dd8e63e 100644 --- a/voxygen/src/hud/social.rs +++ b/voxygen/src/hud/social.rs @@ -303,7 +303,7 @@ impl<'a> Widget for Social<'a> { // if Button::image(self.imgs.nothing) .w_h(133.0, 18.0) - .top_left_with_margins_on(state.ids.frame, 52.0, 7.0) + .mid_top_with_margin_on(state.ids.frame, 52.0) .label(&self.localized_strings.get("hud.social.name")) .label_font_size(self.fonts.cyri.scale(14)) .label_y(conrod_core::position::Relative::Scalar(0.0)) @@ -317,7 +317,7 @@ impl<'a> Widget for Social<'a> { if Button::image(self.imgs.nothing) .w_h(39.0, 18.0) .right_from(state.ids.name_txt, 2.0) - .label(&self.localized_strings.get("hud.social.level")) + .label("") .label_font_size(self.fonts.cyri.scale(14)) .label_y(conrod_core::position::Relative::Scalar(0.0)) .label_font_id(self.fonts.cyri.conrod_id) @@ -330,7 +330,7 @@ impl<'a> Widget for Social<'a> { if Button::image(self.imgs.nothing) .w_h(93.0, 18.0) .right_from(state.ids.level_txt, 2.0) - .label(&self.localized_strings.get("hud.social.zone")) + .label("") // TODO: Enable zone here later .label_font_size(self.fonts.cyri.scale(14)) .label_y(conrod_core::position::Relative::Scalar(0.0)) .label_font_id(self.fonts.cyri.conrod_id) @@ -412,7 +412,7 @@ impl<'a> Widget for Social<'a> { self.imgs.selection }); let button = if i == 0 { - button.mid_top_with_margin_on(state.ids.names_align, 1.0) + button.mid_top_with_margin_on(state.ids.online_align, 1.0) } else { button.down_from(state.ids.player_names[i - 1], 1.0) }; @@ -422,7 +422,7 @@ impl<'a> Widget for Social<'a> { alias ); button - .w_h(133.0, 20.0) + .w_h(260.0, 20.0) .hover_image(if selected { self.imgs.selection } else {