From bb88c68e5800c563167cb7a95f945339913f3bf4 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 27 Feb 2023 18:07:04 -0500 Subject: [PATCH] v2.0.0: implemented the lightly armed talent and text for the other two --- .../main/assets/interfaces/talent_icons.png | Bin 6358 -> 6443 bytes .../assets/messages/actors/actors.properties | 7 +- .../actors/buffs/MonkEnergy.java | 60 +++++++++++++++--- .../actors/hero/Talent.java | 19 ++++-- 4 files changed, 70 insertions(+), 16 deletions(-) diff --git a/core/src/main/assets/interfaces/talent_icons.png b/core/src/main/assets/interfaces/talent_icons.png index 7ef23269b55713e44a8cf839edf82aaf82e80300..fb7ed0018830b451b4a13449b756fbfca11c9673 100644 GIT binary patch delta 6134 zcmXw*c{tSF`^V2`7BluGYnD-w$eJt_W~!$Up{J6N8B1xgOq89^M~cc?3Ox!v?IlE6 zvdm;jp{Q&{W}=}m)+}R|&(HI_uJ8HhKG%KDeZAlJb?)nRonEtNTgrkU_^IPxI}b%c zb$N;I<9oqhJ%fG)YrDJLqc1HA(Ib{kxAkj{UlUwrG3&6+Yi{R%@5#>}xSF3|d(~1_ z>BH;?{-Kw=s;fh@V`GQ+kY$yGanw(p{(Hy=&(1TlM;ni&{J?HAUhW}D4(+xfy8K;P zY8?mWmmS_j73H^#J13hT-3Q0VwE2tI+Z2dfc-teV{^|Xq2!ZnR&9#jjF-bSALXkhh zPiaH`9e64V)B%*r-7A@pX@j7(zdctntF)_q{FOmncI)gbnntXe8L7GeWJ}&Q1VIUe z&}o^oklmUhJ3Gws3(88LtzvHECv@Ii0f?5@)E#aVwj#M#LmJ>HoWqYhw-XN1^$LxU z0sEy(6GYP*idEDvmX$hll!9}p_+4WsdI^61Slo$9k zSg)J;E+y(($vzR!TlbqhV}FV&&Gy|$*MuG_R%=6p^`Xk3L1EQM?%sm6&`?Sv68V`y z0OIVacz-4=RM!Do1o|&dk9wU_zKb1V z%cZNSO#G9GZv2$crNIF#O@w}XU$PYSW@!$O=};}%iZ5>Iv|#?U08^xe!oy(r2H0kY z>1I4AhR$UI)oGOx^0%IWY8Yml33TlW;d$t~bWFfG`x%ZR#SFiEy6;~0;ZpwjH;0qA zgkJ$u@wG)`6X{^0u&$weu`sb3wq!pREr`Z8FxP&OK#m~4N$GqkRdMi}`pa|>O~fU!S?lh~;*rn@jY_DFziILiz(Xo(4sF1xFw&B!{* z9@zl6g^B5)&I>HM#ty>nh+7)yxUB`r{EBSM`S~}%?tmZsnW$Jfjia5o!i$mD{))-! z5KO2j9O6h6$}YWUi?XMEPekkfe+R3l6St=2*_F32b5_9Vu6gx877NYC6gW8#h-<(=vdDpi(IA`!n=3 z&h#em1nxl_D3`%HjOwAg*$13U@b9kF-Uv{=>g^0AKgSdM5jP?`d3LPzGf=QMIhlC| zgd0IpOfF;c_Cms>werQWjZ_h=IkROqdyBa_PK<^6_S!$KHmv!+kM%w3ltIXHLiw)4 zImb!5d(0d*P>!n42pWvVAoG@@t=P$`CyGdvywY)Pf;JTjGA2+0#5b2PL{hN|o30&4 z_1d04l38P*VO0~K=+}ke(2mn8HKYXIGNP)RNmer8(zqyix5)kEw;@>R^sB1qFHAwb zTYjYEtLRdw^PKIJ#e}x_@k5qfab*H6%b%R-Mi#c5(sY{mK%Yi;8 zZ4um4=x?37l|@sGUU)Br2!%om2uVsxdIcd3^(_l4Nn)FUO6>a|Vgpp;W3QW6EAO{E zUa+WpcbHP6MOhDjmt2fNzJeRVz7;BtM(Pz~gI+PPUfZbTQHW7a{gIM)!^#8fXMYAl zQn_VPp>)x;Pwfg5kd7h}V@o-9=PCbSlpB8<6oDK3{Kwd$st1g7MmY?Hm)5*kUHxr? zek69E-$3x$-({yVR33}DbJ&KYrRMfHFfQshXH=kYKk8%K%g>z5PQ2bQl`M+%CaK5W z5wi!4EH0N`ouVu&8v2E=l^%-1c_i$-EF|oQETxAvWjr%*Lsp~F(_u2bkWboop) zaj*;i?)-X zZ)2ETzw(D2^m5k)2|223)x23#F8d&0NG@!0sU=(uXDEW|@G+Su^?EN>3g@y?-mnf$ zllc4JNf~N@>vxh+FHQ_%jPv3gzk)4Vj8X95X9}zi^9RtbHb+=H?OV&BwC_jJvH>D6 zUmvl}zN0?&g>*J$mpph8VYL~&X4-RW{kqW`Jsl;&{R^T`vs$&ZQM;W_?tO_5$xWmt zqn^qM+lN&qphKd;T^rxQ-BhkV=dt9p1 zMtN~+m=~X6-%+1;xrtBv_~o+OF)h0Rd%WjanL77Jm4~pUX*zVNo7%(Y!VPTmaI!A# z$pWCZp_2E^?N$*g1_n}Bc7O+`QC|LAbO>cEi02Iv8%JOp*8%-+EiyR?Q>-+Lu$*|aE5>y?*^$ha~2QT22)U)7c>A3I`dd|NA{UvXxfY43(r9kTK z4q%7ZIZk}SaD`s|WMH#8Q7!0n5~oxuA+~bRRVRRqKS7ZHypqPY6DR5_-L2K5lS==dVnH-WVOKkGgz6vyg6cCos zIC$ub0h}RnTST{ecZ$Cg!4COY_E?$w)MAWNetf5O_weF1YM82%K8bhmKmHVHc=yiR zpJ5^eabkJm$Vw-^NCOJGZ|7wvg634SFf;2;8H23MbL}Vkf|7jOBAtw}+9z@Bqr`&W zy)))#V;t}UYAw>4vZ81vx z?(!q>G)cip_sr$oH%hE}uPrV5zz0{b<><&kicUZvk+~Skmn9&@O3;j4C+P+HXE2+W z9~uT?^g;bcGe9CQkgS2HY?%Qt`PsG!1iW&E6b2lfT_6dh;inw(hX}8WT+oZTe1Kq{ zl9D17rr9Kz33)H<9C4&+o5UzqXe#JE5Jo1iOV|-lleuE_GxYHv^s?D*94P3kx{xbQ zA<}`NTB!5eV5}d3GI)s&vQWPakt#__uwS7w_pz7(SZAE3jLR-Cc)zkvY`iqg zklW4-!+AujIqUsjGj__Tr{cS;me44;yB$xSrSOG>2hr>qBdWcqS3xHh7zx zxE3^jquSg^;+6?Wv+|c!q$wuppzt%1-A=K+d3c)|tgto&uL45 z9TKT*7yL*e$$TG{r-(pn1xqopWyllt0Q zwIIU;GZp01@!KmKMn1-Ewk~b*j@(?WguMLF9*(%UdeMvpN5Ey^P)C8Xm?AyS#bx(W zSYQ>Z9xve_T6En64d=;g_%7tr?gN2yC536%TL*7?q!j7VI5zYM*?%EHJG6 z>8q5llRrMSyto9v{I>wsTf*MoH?Z*ohu6oTHhVvjBcUS*v2Ox%QbU3h?vNQH znK}182I)&B=H#JG`UI#oUB%Q&EPmzw`GpFdjy;yq#w7F+PSKaV546Ek`|&?Km-|6n zMw8|vn{V42Yyod?vzZXvp^52-G3@st;O_(?U{DH#7tt~2;VPD=fka^^wY*qYp{C^L z0nN@r79FoG6Ir*ePDG%mlNbr{X;RXy(Z7pC&_fyMzGp?p%?i%EcLEt~JP|yqQYY{` zV$V1Rbxd+DJ7M4=SIaz`rz5=i9hLR3RRuLtq1I>q6@>IZ^fL?BB(cbpZ9SA`ub8KLtmC@N-UDI&zy);1z83IzvK zfSkxH7?h)>zh7S9#%bcVL%ZWM(KUsSZ~`mHGy;N|ROiY!nw<%ef{G?88qIsb(j=ME z{(3cL?gJj8VPs~^0p2uk8wlssbztTXVziIqkQFU7a8=#I=;^Y>g;%Y-lLM%V*$$iI z?$7_Sh$wxrkPjZ_tX zf{oS+A1%Z*`CeqPe0#@6e6f2SNC^UMdE~T|bNI|t1;R^ZbN$jUj(Q(z5zmjZ2Q_i- zXV_o8YIT=oTfE^C&|Sm4c?^ueSgFamzwKCDRK-BK@Q9&pd**Y?u=w)R>E55VQ zG9Y0-9yO}-`0*O{O>HVKvQ?g#pG9gfaEq`sUGSSkvy(QQ*es@R@)hN6m1{x0iTk9B zf+c{n>zZ!h2q5-W*I}3P;lquhvUaC9J1**VN(vMQ>O*Bs!+hb!DB%DnkakMm0uc^1 zFA1xLKa{HffM3JwAURe>#*cIPw&gBwu~QP2Ne98_J-i)Dh18(O-{cD`><|b3ZT^T^Q%cxr^xTOBpM>17C0`zW)S$O$FHw;ER|3g=s8S~8uzDwJ5 zg`tAf#MPa_QgC}2!OI`JEEyuv9$B|2o@q)h^8k8pE3DT zCVfJ(m7Os{hk4)Wf(1Ijl$eS3Svl|V@45?JMoUkiwIBfP?1tzJd zoS>>%eWY|VFN14xeW7wB%sRm;jgdysW*ZE6tUIyRu1HL^fo0Moy-v*pNGks4K#1+H zJV^$-I{f>8!5(`!Xy^MFs>mYGIQ&U`aEq$|Ka9;maBoO4>DfBOjCi`V1`yq z9dNca502{q!?K$rw)C2CNlXEdR72;&iQ^?6_CTq`CAJL)`{ISkmWrMxA0G>TBwrl~EFgZP=H6kBWFF>C+Lq&_kt94nwqMlKS8rRfl?R_KUl zyXJIj;x{N_oL{ArIa-wZz0|pRA)UpTL;9_A|)mpV6|y- zYofa`o+{0}|A%FAno_&}rYp=VBW?Mha-o^-IlTt-d(}I)^oTxQ(*Dhv+C%Q2@^iG5 z(t@!x_(=W7Wf46Bno$LXEUK0vsk8D~)kZ&&hkzoSe~~Ax&C@9QJ^!NxUAhY^h)J z_;r5aT{W|SefT}+f$76 zA)yT_LYyM2G^rMY>$-^uNdC~W682S|>8=BOAj`45rq{KTe|$%JiADRstVzPxZ9vEe za%1X*xUaJkQOcN2O2{o~Qf|B*kia3<)L?Q07>?8|lsc6T#&I*hGr)agO~_^{7OY3s zLLqq%KpbOwWk+Qyz(C#cm|y4jxdM(JfNn@IC9`6J4&H_ZC7P=@yCrB+=IXn@jgbca ztfW1+mq&Ibf~=D0n18og%ChO=z?*>mUstO!4${1K{&1A(dg^~k$2~58mF%Kj_&;3(%@AW-@o$I--`+n}{oaegFbBYf1>@T|v!DlRw9X=fj z)u-PL9M|1~YdB(lOU&il(98@EMxv@yf!fCXP9bm zU9+8BZ^Jl%c3)jv%d4N0o%*)F-JYR8m2maN_#c?@CF2W{a)X*}`G|8ffuM*vd$B(; z-A-(5{y~iMnoU^v_TNWNytILBT&-j$sM|Y(x>1>W$KPW;2;;4OI~LP^(?ea$}i&m}7Ldma1~ z(Y!l8@Kxpa`+-}sZYKzA_0q21Oqs%nY)9VqT4Ctsn58LB59`WyddD|emgH(Fq>Qs& zz40JmL&Y8V1GMFM7zZ1vlX zv~3=F-PAo<({$aq)qyY)xqMQvwx@r9l}Eh|4&IS7!K^efP3WhBz&Eq6G;au}fnjrx zBc5Y@L0}FnCnjdj(-eEFyJ@B@A3hG{e-?xTq~A|}eex+b5x93PW!e=-8=KUUr3Nne z9PB0J4#86HaNTAKn%Q-?A#&3(UQo=PX|o~nX8P35v$#&tPG0hKLm~m9^8{Za>p6GF zU!WLIv)S8=`%7$MKV?j{o`_3Iu4htML5LUYz48Oc?85S-OaSJ;ITZ0Lx^`No3Y2nyk-R&pOy~ zcqhoO6vI)7ee0P{z}rq1sW2seye?@0F03+(CDru)qu+}h+%{?Ifn%48(}R$MMHm$s zd4}OIri^_kU^g&R1zI**g>VOWx)n-yQiAr(!|$}R&OBi`K$)pca205O+(C^2w_A47Y1lHSFx(O>y{LqFiaU2cJ za1hWFbp#h&Y?2Lb;t5w&k!=GES(cuWcdeR10{&}8yFDxzm>O1{n~@RolJbj3_PU;L z5u0CS|EQZB=4SYiYU<=7?&h>|=FmTQ<%luxJme%MGjqqE4q>k=_&gElx7aNmL5q@D zw3}di8n3K|JmRM-rDBzL0|~dMyENd=S)gCrvSm@Y!UmFnPXm<{@DWOC{z1!?Am!?} zduC&|xYz*|fG7P+uVB=R!m*C3FWOd0SUh zY@fCAtBYnOil}-oR{X#TolBg9>YK1D*|zl#(4#8u&bEz113J)giZzj@Xzx~F#&}0*Z|xHbaRqowSBc>+mM`|=hZ|% z*2#bEwL5|xV?t`Ut-n0(E&~Z+Qk`P%t5cP{m&QK45MT?Yc_-gMon90El-P+ zsP*A^|93(5tI)W~+TcDNMmID3L14gx#PBf>Q{V^B!Wq@GW-Dg9-RjU*)2+LH&#drD zGx|NE{kuj9BzE1o+s#5ZjM?GpLbn#{X9#87o8la?$C%k|h#7ysSwjKO`zNe6$P}93 zne)d>C$2ge`KeyjGqD`tos=}FrRdKa79 zKf%^;1r&g;fxZnTmpgDIKI4Up)Z8RZI4+WT)s*hwG$F3%5nRV@2w`T={wd?dhkTXx zif>t$=*3c5hhS!)A>L9;(%<5FQoH%1X|D!}8ZKqz5hF$~0DRdKyV~mnxxRKE1jq}QU%$tK@pFjyhUhsagqv`j| z8ijMY_wTs0Z(jWMw{fhc@>2rhSeGdUTt@O%BKA+y+zwUv!$A%3wR*hnk2GKX@Lms^F(~?qwj=*83oCV(1xO{Fdu(2n| z>Ytsv)#j7kA-EkD*HG|MyiMI&c%wm!LphlnN&o}(VUjC(CS2(vl)lcJ_2-^x80M#m zm>x_F!la%PV?}Xc_}T}?3^WZW;eW$|xes^_K!>l6qH8}tzK>Tn=4*JKG&)n)2Z`>P(}??Us-ed;acbQmg#5;K+t|IM@+teQTGKMi#Rzsue9@Q!06b zJ0jM9vz-p%q=#R{#{Ym5tj^9a!xbt{18$e1e_yRx4@=ej!x}@)NM<1CL<_wNHUnpE zU-Rxg{|S2*){+Km8nNNd4)nBhVt|NT(@_Ge4q*LLL`8nNneP_R z8MCS-G~)iSDI%2?T+@86Zf*KekN-;ODtI$7g73j1l87L(a|@_VhpT_^&ycF_11PEm z)k;2r`DvC5TG7t)0+a~F{|9av)_*q<5F0`yMd(o<1Zq3^3n0J2H(v9P_!rpRJhCtf zqZfLZJD~-$pP-N|g_Jh7Prnujl^YrzW9o&654VmIqq9t=3b>V{3a*9H6l`oI=`^JO zLlwYW4>$)g|STpx_0O}13vUgHVMn}>v0CT^1o9*XOC7DQX(CL6u@D1 zPr*j=DeiVENDCdHiq6i2ZUpe>19G9l>!Lp*(t&?E*7 zmwQQqj_Ze@vbJsf2@b}3-PE(l0$DE}r; z{pyZIhEf_(*$phyWD#bgjhH-mC74b?ig(FP+x(4gQGWf&eR_*H)R`uafs@GFf0po% ziS3`JOtRVOhf6%tb4-g3c*fZ{frX1l_7^4TYcOegqVq*uy1c~s)?wQ@RLCQS0P3&! zNHjgc}_rNaLL2lKCW*U zm@W;}NyT7!&)wG4PnV3(^x}`@3b4 z(C_vnA7hLo^?(fW^+MMA&hhpLjhf=-fnbdq8HAgaHU)eeT$-#WXc!WXG-kgA2+hK0 zE#W)<%Rk_G;kE*VrPuHjcgN#+z|HT;^n5-H;{E~Ja^U>;Yi2Mguab(Un1VDlLAuIT z)s*$3V}zd|Z&Y9_Qzt4~puOI>9$xT5nLku6_AIjvZ@PDq-hV|D zh-!Diqa4`3Bk}CF#Y&W?t})H-9uP~~NzN%TGn+(y&(xTH_OrMx~ zJ6WkLP}LHrLtWu!DMWu@K904nM7QEDO|;p2`slY?2`-CiUneMc>$N!>oHy;5SjB>{ z9#_&meU)GEpjwp=P}uar~*<-Zg_&0l#+7{ zP3vLgyufkwU`RU{qLZzwniR+rG%V6g=GXH2 zm$v4puv@gQ2NSQw8P6Kp}G;p6p6ND*lp!6DV`@7rFyE zD0kJ_OZ6i}Kj&OEx`{SYeLOW^m_9kT5;t0>d2#$`FmzugcUT3Jt0NEx*i*5P#acLQ z83aN*{DYxx>45Tn335`KOlf;KCJ9$B4))%R^Z$~zT=(*b@9R$baN|}b)q%ef%T&8s z?-@k4ZR7Pm`wE{cb&x;K=3yr}RKv@3!tZ8(rRTyRKI$UTwCFwbs>S-#4BvJ2aR^kI zMSfvODDI&rR|i|Ma^hycW579WS~F}P*+*?R z%%nLQ2}XTBVz8;01D%?eJ1T(gRRt;(0OFAF9!pO&5TN__YrQIa z@~R>GKlrs5$01dU;ei3Lgc=U)%FXexHLs4QoJ!$gxb+18DwOglXdM zx6-~QGzS3-1dIG5uq$7H&~XS!|1!L@1r8!&+Q!I|AjJc*!%%1r*{iEr1`uHpov8pR z+my4mfkp=m!mk0!PGJWutRwqmw}dms{{1GqWCx0ck(3v?8RMp$gra^JQ-0f*`26_; zJj3-{6`@=2Z{O&>0eoX(oA61|$6eRA+4IP{g6e?trAa^j9a=Ft62?=Yy`7}g%XBp} z1$~UP(?6~920I2qk|-v|OKr@>oSjAEGlJI~cNBR$y*y{c&sfElsizz66-t?02x2fU zeOpc~#!=2SN?(yBN7Ta%XNG8>*Z!_~N{Px|1r33`1lSz~I)wXte_H?2oH9l`HOGk7 zo4v~zPsfkBrAONeBGH{~1x%+Jx7o_F8aKfa=i@mhexY{CGHYzrB9e~ky1SHheKXx8l`!u@2qfvennGkU&WH4jKOJlKR!<(%1!&^@42q(^d*qZ?A>c4 zn1;$@2{RYwaLN;}&|P3?MfFFW0&g+E0D zcyaI@{v-50(mN4Qu;aY6`9qdKQS+q{!5VWcyt;3x!N-7*`PmuYd9)ofTRK;zd#i$a zwUQPj4)2P9ISMqRQxQ4yyf0P5!oBPM`m~M(t91Ok8{WT{6>u+1U|B7aJSZ1QDg?4j zvrJQegH0(7LzjQqVDpUxbAut*gnU&w+00ovj6%ASUeLDhqNbUm4zq?3*-B8Xr@!1`e*P8!@)ReAWQ!H$)`94^u0_AmdD)>s+U#iUA%FJW!rVL-+{P-;@PHLHo2)IH-PR?6 zwL8pUArg)i8rB#_uWLwfVSL*IFahwYTbEaw2m-RTIvm;(VeqE!Em(+#aGmN%M-pWH z&@$LhVKf{}Zw63J8gS3?<_;Kng1caS2pC3x+LU_(`$iZ6&%npPx&`jy>N)6F_im6L zKl;bRVul-3*PdQ`-5J_-hya2gc>a}fZU@r853men|F@{E8=DakmwPu-wCuO*{TH?T M>(sH5Bb1x}1F%zrmjD0& diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 9067cf347..3600c097b 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -882,7 +882,12 @@ actors.hero.talent.twin_upgrades.desc=_+1:_ If one of the Champion's two equippe actors.hero.talent.combined_lethality.title=combined lethality actors.hero.talent.combined_lethality.desc=_+1:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 10% HP_.\n\n_+2:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 20% HP_.\n\n_+3:_ If the Champion uses two different weapon abilities successively, the second ability will execute any non-boss enemy left at _below 30% HP_.\n\nIf the second ability does not contain an attack, this talent will instead trigger on the Champion's next attack within 5 turns. -#second subclass +actors.hero.talent.lightly_armed.title=Unencumbered Spirit +actors.hero.talent.lightly_armed.desc=_+1:_ The Monk gains _25% more energy_ for each piece of _T3 or lower_ equipment she is wearing.\n\n_+2:_ The Monk gains _50% more energy_ for each piece of _T2 or lower_ equipment she is wearing.\n\n_+3:_ The Monk gains _100% more energy_ for each piece of _T1 or lower_ equipment she is wearing. She also gains _150% more energy_ if she has no weapon (or ring of force), and gains a free cloth armor and studded gloves. +actors.hero.talent.monastic_vigor.title=monastic vigor +actors.hero.talent.monastic_vigor.desc=_+1:_ If the Monk has _100% energy_, her monk abilities are empowered.\n\n_+2:_ If the Monk has _85% or more energy_, her monk abilities are empowered.\n\n_+3:_ If the Monk has _70% or more energy_, her monk abilities are empowered.\n\nWhen empowered:\n- Flurry applies enchantments at 75% power\n- Focus is instantaneous\n- Dash gains +2 range\n- Dragon Kick deals +33% damage and applies its knock back and stun effect to all adjacent enemies\n- Meditate slowly heals 20% of missing HP and grants 80% damage resistance. +actors.hero.talent.combined_energy.title=combined energy +actors.hero.talent.combined_energy.desc=_+1:_ If the Monk uses a weapon ability and a _4+ energy_ monk ability successively, she regains 33% of her spent energy and resets her ability cooldown.\n\n_+2:_ If the Monk uses a weapon ability and a _3+ energy_ monk ability successively, she regains 33% of her spent energy and resets her ability cooldown.\n\n_+3:_ If the Monk uses a weapon ability and a _2+ energy_ monk ability successively, she regains 33% of her spent energy and resets her ability cooldown. actors.hero.talent.close_the_gap.title=close the gap actors.hero.talent.close_the_gap.desc=_+1:_ The Duelist blinks _up to two tiles_ toward her target when starting a duel.\n\n_+2:_ The Duelist blinks _up to three tiles_ toward her target when starting a duel.\n\n_+3:_ The Duelist blinks _up to four tiles_ toward her target when starting a duel.\n\n_+4:_ The Duelist blinks _up to five tiles_ toward her target when starting a duel.\n\nThis blink can go through enemies and hazards, and is taken into account when determining if an enemy is in range to be challenged. diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java index efe829b49..e5e87ff11 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/MonkEnergy.java @@ -27,12 +27,14 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Ghoul; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.RipperDemon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.YogDzewa; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfForce; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; @@ -134,16 +136,56 @@ public class MonkEnergy extends Buff implements ActionIndicator.Action { return; //to prevent farming boss minions } - //bosses and minibosses give extra energy, certain enemies give half, otherwise give 1 - if (Char.hasProp(enemy, Char.Property.BOSS)) energy += 5; - else if (Char.hasProp(enemy, Char.Property.MINIBOSS)) energy += 3; - else if (enemy instanceof Ghoul) energy += 0.5f; - else if (enemy instanceof RipperDemon) energy += 0.5f; - else if (enemy instanceof YogDzewa.Larva) energy += 0.5f; - else if (enemy instanceof Wraith) energy += 0.5f; - else energy += 1; + float energyGain; - energy = Math.min(energy, energyCap()); + //bosses and minibosses give extra energy, certain enemies give half, otherwise give 1 + if (Char.hasProp(enemy, Char.Property.BOSS)) energyGain = 5; + else if (Char.hasProp(enemy, Char.Property.MINIBOSS)) energyGain = 3; + else if (enemy instanceof Ghoul) energyGain = 0.5f; + else if (enemy instanceof RipperDemon) energyGain = 0.5f; + else if (enemy instanceof YogDzewa.Larva) energyGain = 0.5f; + else if (enemy instanceof Wraith) energyGain = 0.5f; + else energyGain = 1; + + float enGainMulti = 1f; + if (target instanceof Hero) { + Hero hero = (Hero) target; + if (hero.hasTalent(Talent.LIGHTLY_ARMED)) { + int points = hero.pointsInTalent(Talent.LIGHTLY_ARMED); + + if (hero.belongings.armor() != null){ + if (hero.belongings.armor().tier == 3 && points >= 1){ + enGainMulti += 0.25f; + } + if (hero.belongings.armor().tier == 2 && points >= 2){ + enGainMulti += 0.50f; + } + if (hero.belongings.armor().tier == 1 && points >= 3){ + enGainMulti += 1.00f; + } + } + + if (hero.belongings.weapon() instanceof MeleeWeapon){ + if (((MeleeWeapon) hero.belongings.weapon()).tier == 3 && points >= 1){ + enGainMulti += 0.25f; + } + if (((MeleeWeapon) hero.belongings.weapon()).tier == 2 && points >= 2){ + enGainMulti += 0.50f; + } + if (((MeleeWeapon) hero.belongings.weapon()).tier == 1 && points >= 3){ + enGainMulti += 1.00f; + } + } else if (hero.belongings.weapon == null) { + if (hero.buff(RingOfForce.Force.class) == null && points == 3){ + enGainMulti += 1.50f; + } + } + + } + } + energyGain *= enGainMulti; + + energy = Math.min(energy+energyGain, energyCap()); if (energy > 0 && cooldown == 0){ ActionIndicator.setAction(this); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java index afbbfdbe3..28cfdbb05 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java @@ -50,6 +50,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.LeafParticle; import com.shatteredpixel.shatteredpixeldungeon.items.BrokenSeal; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; +import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClothArmor; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.CloakOfShadows; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HornOfPlenty; import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring; @@ -57,6 +58,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Gloves; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon; @@ -154,13 +156,13 @@ public enum Talent { FOCUSED_MEAL(132), RESTORED_AGILITY(133), WEAPON_RECHARGING(134), LETHAL_HASTE(135), SWIFT_EQUIP(136), //Duelist T3 LIGHTWEIGHT_CHARGE(137, 3), DEADLY_FOLLOWUP(138, 3), - //Duelist S1 T3 + //Champion T3 SECONDARY_CHARGE(139, 3), TWIN_UPGRADES(140, 3), COMBINED_LETHALITY(141, 3), - //Duelist S2 T3 - DUELIST_S2_1(142, 3), DUELIST_S2_2(143, 3), DUELIST_S2_3(144, 3), - //Duelist A1 T4 + //Monk T3 + LIGHTLY_ARMED(142, 3), MONASTIC_VIGOR(143, 3), COMBINED_ENERGY(144, 3), + //Challenge T4 CLOSE_THE_GAP(145, 4), INVIGORATING_VICTORY(146, 4), ELIMINATION_MATCH(147, 4), - //Duelist A2 T4 + //Elemental Strike T4 ELEMENTAL_REACH(148, 4), STRIKING_FORCE(149, 4), DIRECTED_POWER(150, 4), //Duelist A3 T4 DUELIST_A3_1(151, 4), DUELIST_A3_2(152, 4), DUELIST_A3_3(153, 4), @@ -382,6 +384,11 @@ public enum Talent { if (talent == SECONDARY_CHARGE || talent == TWIN_UPGRADES){ Item.updateQuickslot(); } + + if (talent == LIGHTLY_ARMED && hero.pointsInTalent(talent) == 3){ + new ClothArmor().identify().collect(); + new Gloves().identify().collect(); + } } public static class CachedRationsDropped extends CounterBuff{{revivePersists = true;}}; @@ -796,7 +803,7 @@ public enum Talent { Collections.addAll(tierTalents, SECONDARY_CHARGE, TWIN_UPGRADES, COMBINED_LETHALITY); break; case MONK: - Collections.addAll(tierTalents, DUELIST_S2_1, DUELIST_S2_2, DUELIST_S2_3); + Collections.addAll(tierTalents, LIGHTLY_ARMED, MONASTIC_VIGOR, COMBINED_ENERGY); break; } for (Talent talent : tierTalents){