From 125ed792fb4134393c1350c7150c4a2f7ee538fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Fri, 20 Jan 2017 00:39:13 +0100 Subject: [PATCH] Removed action cancel button --- TODO | 1 - graphics/ui/battle.svg | 139 ++++++++++++++++-- out/assets/images/battle/action-active.png | Bin 5317 -> 4455 bytes out/assets/images/battle/action-selected.png | Bin 0 -> 410 bytes out/assets/images/battle/actionbar-cancel.png | Bin 6372 -> 0 bytes src/view/Preload.ts | 2 +- src/view/battle/ActionBar.spec.ts | 5 + src/view/battle/ActionBar.ts | 14 -- src/view/battle/ActionIcon.ts | 48 +++--- 9 files changed, 164 insertions(+), 45 deletions(-) create mode 100644 out/assets/images/battle/action-selected.png delete mode 100644 out/assets/images/battle/actionbar-cancel.png diff --git a/TODO b/TODO index 05ed18c..1e12370 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,4 @@ * Add auto-move to attack -* Re-style cancel button and allow to cancel by clicking the action again * Fix energy depleter effect not fading after one turn * Add equipment info (or summary) in ship tooltip * Handle effects overflowing ship tooltip when too numerous diff --git a/graphics/ui/battle.svg b/graphics/ui/battle.svg index 7ee3120..db81b2e 100644 --- a/graphics/ui/battle.svg +++ b/graphics/ui/battle.svg @@ -2,6 +2,7 @@ + inkscape:export-ydpi="90" + enable-background="new"> + + + + @@ -388,6 +402,48 @@ stdDeviation="1.4344999" id="feGaussianBlur5963" /> + + + + + + + + + + + inkscape:label="Actions background" + style="display:inline"> + + + + + + + style="display:none"> + ry="32.79208" + inkscape:export-filename="/home/michael/workspace/perso/spacetac/out/assets/images/battle/action-active.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + height="100%" + inkscape:export-filename="/home/michael/workspace/perso/spacetac/out/assets/images/battle/action-active.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + height="100%" + inkscape:export-filename="/home/michael/workspace/perso/spacetac/out/assets/images/battle/action-active.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> + height="100%" + inkscape:export-filename="/home/michael/workspace/perso/spacetac/out/assets/images/battle/action-active.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90" /> ~iBL{Q4GJ0x0000DNk~Le0000?0000>2nGNE0NRpalaV1ze-PwJ zL_t(|ob8-DlO0!#~M#QP`^Qz z#!`el)en$7p<@hLG$aMfnBh>Q#Aq}JAV{Jf_mO$_l974q0fHQKOo&wQY6l8=>*T3> z^Q^nh$({S`y~K~2Wncbwcz7sye*}-N_xj}MNDp~Uh`@r`W7~nS_;om)hgJ)dpd&ChRK74rn?+=H= zqeqv01t7iVbFQ4fZr0<+=-?6h=3`=YljvteeL?IrsGbnhyQrQKlQR7Me=<;ehE{Q^ zwxA}YTq&|qWFeZ6iqN7XigfKWd!Z7j2=(jNgVs!NHEwb^UOiWB&)Zp6FWsjdb)GRH zqmq4|x~q7)yXP)3FHe~5?R#DEs($OT_g0oQx!>bO_tcX+_wtK#^5B4ae25=E#&8|H z>lbM2F_atsl@?ykZ{EH!e_O4Y6_`}5C#6gpObfKV`?i?IB9tl?;UJWhBBGiiQ7{D& z7C{m!DD(1j1wtCm>Ggow*i>VZh`c{@q9Py23bJUX*oseB9of-J5scf9b7hv-@_ox-U@)8$$bLOw5;j;2$LnZf zq_pkfH7TiLDxzX~L2uE!W+mu^*3Mj^SV$~vFQr(haF*ufg!1*euAXyq`c41Ir{{n1 zFF#msKx;P4`pb`Lf9}uk@137dZ%wGTD)Ek!Uy;5Q#GXUDmgaWdftZ8mn5m?eppj`U zH=t&G-y)3wjXw%xTUS>MVFB`06u-|fATi-}j=o5OGPEv2v5v&L; z1Dzwz4GYWXu5p@Czgt!&;fVZZ)x@25zdk(T1iM4B03O?MfA^T3BJO$BzcZONx$Jut z>Tadk4|3OLE-|w;mzZH@h6$*ZvcWWh#u}JLWw z#u7Q6OYq3BxL_BiH}rD$Mr(qV#KOIo5(`BvsGNgO5$C1gu7}3;tFE2?{@DTNkEI+K z_JpW6Pv<$Af4$R&?ydX&IqT-jb<-@PrHC?-X>r#Iw^(ftt%9O-NfcsO$3jFVB^2Y4 z$e_dqw9&F6ngKAA!H+QP60fwzbu6yZEJ#7xWQdx5rd29QI;eALLPO|tK*r|WfHX5VOb!@iH=&Z?B0G`!#mOCTF;e;phX&$7(Iy5-PaiB$yspWNle z|GYW-hEs3^xK#sEsJ!68!Q7Y&rYbJ64W4*7fF*Dq(~EVk`q{`2UM?F|hNcR7B7 ze)|Ca`s4ZcrrnowbkNLR@0jtT|0M*G+BR5JbEAN zx+6Ede*F3Y9lhzue`5Qg>w5h7^0jUL@@t~Z*ArCcnYkCCdCz)s>w}44TsY<}Vxl(8 ze;l(DX3j+IynXX;{+D9&7Gbpx%`rO`b3wa&F<=#khp3wpm{uw?G}|QFYF(m|Ho=YR?LK^||pEZI57D5N=z{9M~y} z8BN>H-+fy=8mDAEC7^E+vw%5b2DC%_e|A}S1q;OJbM|dL{dSm=FraGF08?N_GPP-@ zWqYRM#uf#+(4YZ}%sMNknU=RM7yU^=il*3}7$!y&1!b~@fK3V-f(B|Yo@B0I5dh0L zQO#PUXc#>BrY2<>=#!(PtpV+mqa!T?F$4`-pfzr5QkJJD17HV7XrFzGn!q%qe_Kpb zq}T^u4GjL0?I90o&rXJL6WOqd#7M!7eGZP$$S`CP!?We46S0i#o09DBQ{XH_LNCM3{g^1l$0jW7A;}$5OQ@E3W}s6Q)Eg8 z<>m4$cnER)1m)^H2nwhO0#s^HvJB^c?s5E7cKif2d%JR9n>0lb9`_~M*wyh96u*4{ z+3bYI_`Br*g-ppcvDqfu2D`V9R^6hYA>e5_u!}^Q72>xKApZJelw}d2e-dnB@N!65 zvTPoWyak{QV=OTjx(KaHNao~A$-`{GA~v0zc`#_;uxsY4WgGR=2tsyRTy!( zyl`A44Yf;w+lxh?V_MIwh}qVP| z8A+sq>~nEZ>ADSeZ-G^3nI@5vfn}NDtY;&`e)AEIe>%@}%?r@1v|Xdl#{!^jh#?MR zthq3DVwJ3X$V@e)8*dD+R9^n4;%p_GfJ(NaQMD6m-2M=&?1bv>G zVMo z<)hIo2UP9oL7hb}ld~=K^f@`91l6WjsKZ$ue@*R1EaLbfKH-GwJ`p{k4$)UTPZ$(M zw#AM(qTAgc+zPIe$H~hRjvwNYVf!voD!2nWCw&R(Eb;f`SAN0v;lqcX4c=%41}sqL zpw9O8FQ??XVu>E;Y_EmaPU?CK7yb31pHh)K+iP%l6^o$~q~aI=TZOa)RucVc3jte= zf8>#38PYP)Qk8yHzr6&k?2)z7W0q+am?hAay*JQC_=VZsVa(kI3yUSVD|>GxhY%dX zZhda#PGS*oF0nxFcI$I*B%`*%4hM!Icdoe%IG1CA=oVi+AHrU?^&kE_JLjeQK$L%O z^4G$jh1YVw&7W}|0E_Oai`#X| z3*bD(0_Yaq)2#sNsx3M$W*g&dGj#9W9+syDU~=bPu1{HKUl*Y`OM8*Q`fPpAhXV^Q z-th47^-2S8qEh#&-I}96Mim9%#YP$BH8w<6UR6f<0d+cftuo4ccgXW|uZzmLf8{gq zd1J57KE>PzVe3C0(>}|^yTRn2Wa>{!>HfDn|Bv06J^Sni^~TdLwL7`5e*P?G<*xeE zZ(>qzX;IL1mAVtHLf2I4n!O$6idY9~VtD~hry&ip5$e`@BhXsg{issczM{P|NxYoS zGb-7goH-`D38zfc?soSF|7z6Ue_2)g?%rFus<>T|iw;ljkY515en~k??y9Z-*w+2P z|0`zYzujE(cmL{uu0itge{tTvS(h>KHxhH#a#mF*-*nu0cS)36_a`K6bZ<@8bS<;} zc9DIfLg|xY5lyF()17F7AZzJWf+?lzYawcBDN47x9Q;rPT$A7p>jBoIf9zER=_}#$ z0QU{quGZ(xioG^p~cX5R0R+Do%zY3_!3q~?g3f~n2K zQft#NYKTSB7&T58jnY^Uf04Q>v^FN~c@$!M!)+D~X}ZQZU(pYvVh?hENw~^c33?N~ zOi!zxq*u5zti!nyvCt$IwbrFn77d(1e^Mu$scBY0|9iZ8*7wsT4~8{tEOoFRAJM-3 z-pPKmzkfUF?$F1tDEUswaD<|1!) zQ<}rrfHmgT{=KPcDCVHD528Q850}->_fM?>Y$lp<#=Swf2&t{A7o-Us*9vvKX zSGFIoe1*3D{9~GrpzU@~=DBX>L`(~s2wJQb(}G$TnmY$R;5Ve{t!JxL8&Jxrr`UraZA=rS1W5w$_smrq7Su9Uk zzWk?jkD*@Gb#1PFlLNK;$B(H8kM>u`N1VKOm)QLPeeoI{*Jg8vY_H!T6;fQ)ah24q z#=BymyrSjWe+iZH_vpBe0rcv0Gr0t8qgWSZme!KCpJhx(4Oh-wX1lpMIi+;=`pTWM zuQrRDx$0lI?BCAw{wtTWceA-mPQN2>eMTN1ANuh>dpxG2Tx0u>*if8wVHeU^ulQka z>Vy5D-}MGc!6!ZDZ@%CDs$aI*<$80a;6olgdUSaM92r*IA9UFN4;1-jJ}nir;s5{u M07*qoM6N<$f*6s;^#A|> delta 5291 zcmV;c6jbZyBE=~oiBL{Q4GJ0x0000DNk~Le00013000132nGNE0CANtG?5`pe-uJV zL_t(|ob6rBj@(Fc{vtA2)!mXtv!mIA_h7?-J%BF;7JdT1j2~*>!%yI&4}0*>VGJAa zVHOy#R$58@Q$;c}e8`B*;7_sC-P#>*w*w%G#UhjBmtV$Tl2L>rwDRc}tgJsr5%)P? zpKk*ISp(27d}6x?_^E>}v-Pzlf1lWns0Xfr$^e3XGS&h2^3;HqmG5&vvo2}2tsWDx z1lNF_FN`VJPo2r9n42*LHlbi*>wp8-a=;Scrv~(z5i^z=s6Bu|Kj-%^0B8%~{cJI?J(CF`aF{e6Cm(APe-ZBA837PI zj*z4d#(T(!G}o*C$N35pAV|sURs+{SjR1~l_djQQ1$eF=b^!L@efQlzbY1sL04ySb zh!{i!K@b2$R5k@>A_7w=trCbywFm*k1PBorpt7M{0@Kn`5Su*$);s6c-9Aa5wtn0)9#0+8vGXvT$ z%t688vhYlWE09Dp*!36(W4Rxh+945H1zxm6M6#}zPe72fZp#^xe-m;V%QB8_J*D>B zI3SH<>8N&|y@EQTsS$#LxuqhQhzgk94!esNxOn*$UVig)>@Hs+UR)w}dvv=!!hVks zci`9|gb0ce%s~N*;7|Yu74SJQh(aM&;YS0P7~}_?j)c0=fP}!tfWW|2cAI2nrveB` zkercIhS++}kTfDye*k-=;}JuD#5f!=9`4ZJeZuv--{Nrn5&hu?X*g;pffcJ!u^Zu> zfKw`>1F#c805RfzkKNTP>|cC^tJiPvXMg>-c=64**k8Ut++Tsa9b&fw#~mn!0xSoZ zMjaUWj6;fQPasQfBG0uwtJgb$*b(E1~03DY`}|T zWp*xl)R>w~O^g-bre_mGb#EF6NHX9Dgb;D@`fFV5Un8fC{_YxTFs7cByODXQ+*C!3 zQHUw-FYx-?U*Oxn_$&PQpZ|tWzxxr#>kohc92g=}nF%HZRCOo?FcXLZIF#$)!0JGh z{X|ezf5##&BnE*Rz9RLrY%JjBTmY^jZRi822CW&p)Yj{7sw!+$xZ@!L3ZW3~>o@rJ z7k`Q0q>S5l{{ywY^Juq%Y%0QoT%ZwQW-bhV`3hIB-(Yv~62zfe)Uhw#PtlKsJp^NA z0f>nqBw&;dAW?QY#s)`t*2F-?je*;`9poP^Hdx%R5(5!<*&(S;*JF`r^ z7;P_fdk_cgFTcX&>u<5UdI65n48mGc3~(x9&K-ujxf~+m#T9l}FAy&-5n|~R$$CS1 z%CM#<2_gv@8AOas38dZvh(JaTU=lNsA}S7OnS2W1ffnB_Gtino@p!qF^|)i{OBXv4 ze`1I3QnA=yf>UxwAKwJP0yFG%rr6Gd2>bf~W0c>Ur0AeN%5uw{7bRD?cBg9yY z61eEN3a%Ue2Ckq1Z`;xKs|vH-M^P=1Vkku*q<$>CBhff*dS6UkE65-{M({;Ien)MoS&44O)dJ$BC1WK=y2X@9@QWY{0uX7buCaORK zsLZT~7|5k@?U3@lsfndNzK>AFVpjsIUBRLNaay(+OiUC)34yh73bCaf+lPnZI#7q;IiAs%Y7=7XEav5%MMZzL9Q+o1JLNqB`rkS^?246a39HH zB7~p`E)HOhC8t8Xh3_`N07~r5Tq3a;L4h%e38aB#jP&dUET||pfEK^oe{sezQ9r*q z`lOC6XGXS&4Gl- z0OjTt7&A@1n4dhia312x*Zb??a*awd(u`mz6A9-Syy;`qDIrUoe``jp>4myuz4WQy z)_x~9oJ>VDMsqPB=m_K$KYk`B0Tu*m z!=fZRxH1@L8(wNbf88!(DTmU8rW>=S3abaOZ1D4?rX{{m9zww_?wK07svdZAmi)9A zQPeHf;c8Ku8oY_9P8682Rvl@{9o4 zblDM;P1ec-L_xL*Tx0V&*)Vd&O$#wrWzO7&M)5_P8)SppfAY4_Jc1b^g3WyueOBfR zGb}Mv0ZyR(eSC$MGF8SeH@(U@!wcP>@Ln8ZG2B0#w{MwS{G&yR8ql*1QlRhO3 z=ZU%`=LK!af2NzpHY}<|)}AY8oiPRw=PK1~7X)R#jFEHJ9C1c={_@gz$%MJ{#m*s4 zJ+vG#HC^sQH$PDBEvo+1s0k+i{sa8rSSFYRpc)OCH*alL_O^@g&b%>KBm-HaFg->@ z%It=D6;3=`+j^dW+n#}N0mO{`p6RGv{TQ!eCCq=ge~Pd+tualqh`B4xz*rz*H%H1E z(Wi$hs9C0MfhxHw$fmE!jN)vD7^rQnF&%5{6|=#Q$O%)m*~MzBDqK3EOF6G1$kUs}L`8AIl&E2XA+6$Xl3df8clhaY!K=IY1g1^@eE)@&q6vkWk$ZK%Hft2PIW|=G;0%rsrHR z*L^SRuARqWi+1DF@Y~GOmYhwvwrpmY#*Es{3~F ze{R^_Qpb&HlR&iIsN-Z#eyQhJ#AyQ zsJU4yvgM{#=czQ_8eXadQyFEy7C`9!o?QZ`B2ELb0F?Z1Q(%EFtP)nmjbsuBII!gi zpPw@NEYTbF%yo>m%d03=gLtAjTK+f>ho`{e4-D?Z27{B`LDPuRT(5H%Q}4SvsI##Hwt(*DU+fRU{| z(P^&Yxbaftwhqqb#B0y_Na_(6fBKVSbzjkYuU`y{&$yB8X?wO_GT(P{#z$Q7pPtM@ z8eI{4SMH>20xVg5U5yItQP8CkdInPO+XATeoi>cz2Ee7pgyz|+!TZx2-(NyzNhX&M zIVYz9PLMq5C2RZnfm~xGv6KK{34(Ka`257a88$nU|Ng9`jo|7k8n_!?f5bMxmBB7? zK8vWHg?QDgVKOSs9>UpR3}6G`e=z|$S&5a>Ym##5x#z}U)4c|&Ju~+hfGH)J)VP7`IjzI+ zEJSTt)|wMpQo+KACV8`()j2m!TG60{oX66O&qY4~X#TG<)@+ihjB~P`i*Q2&B3d=% zIe}{;m1IRN7`UQk9Zt&`1_Px!h*k(m*|{puM=WwHqgb5L%K&YIe{tH#0rjyYt9O%C zJqToduII^0GioBEs)$bS&=1thOs}B>=AXm^ zrRkZe2*CNmhJ_Sd9+r!+MziW2SKi7D-g6Vv!D%R1zX_{ z(Ful}Mx?%s#4@2Ml+& z7;Zmdr~r!qf61y|&v8U_8)dR2%93+V!x4v1A8`HtEykN05D`MyfkRi{0=0@L9HOg^ zQc54x*Zx6T4O?q1SXmmfXK$%JMZN<31Y`%qWOoZ`-GpQXHETxD@(H5vL#uyVf`?Iq ziPZAF0zfh-MC6olxcP*e_ixePULy?ys5~{Y_D3ZEe_Dxg+vxtrU>rq6(s0CwAAcxy zbo&Fk%a`abUm;rUu-KJCZE;tsQ&|b}&?+;9&_JJe!2HcgUrM}S%ai>Kv|2UQv30^e zdvQ@`AgrXV0cmB$Z9V6Nq((fAeKBNO*48`+2ypk|9e#835jXFDThs%I|33}SU@?nepAelohWPK^T|-rr>aU znXjph3MG~g6}u`YK&y8tfW3<`dBX{)!{3p;O%PPzEeqy8#U>RrQX2=1{h<_RzWIpj zw?E>)|Mj0S+}+|Z9&xz&fHV%s1175!=n9R(Ie>fQc^hA_I ze*|ghalHNr8573i0ssC_|A@G|0LL9d*J-iLeN`9j-w3$Xy3yJ{JSni`U#g~BhoTW! zjiQZ;isO=j^_RN6sR;2Z!dJk~O;w~cmde-TfHWL2_I)jwKlVqA{Q>>m4Tjqr^!**6 zxp69g_h5fm;+b6k31*=hbmwE)*3y;7f7^uqaD&?q0UVlv^TpcAXRHPe)Czc*?w#x1 z!ql}l*v;#h*JUsxw{-H`Q|IlwO;px-wQATb4Vh{n(K?{03V%!*$CjpS=g5lH9N@}e z8%ZAE9sm!+@N4~@MI;E7iV4yJ6ebWdKwLo!1a_W*i)G5YFRaC{r``g!0~T_sf3nkh zz*8QVndov06sqBa)R}Ux&vSV;L8O#z)cUV=h!Bu-&O$_!KPpjx`xSseD0-OD{;SCT zyXf=&YNstg2=rO++kBx{Z|*HCf2ZT6&akD_bk6A!-lG8P7q2Qt0C`PCc&}buqeq}kR6WHI!4EX=QJ6m%G)|O2jJa5=H#@Gh;sR6x~ zU+^G%m)0+nusO~e%C14*NUOqjnz>IIVEgVto@10}zbzPSqQxHSPIO{1d1}DUM@1|$oMx$giemSQK*5Dp-y;YjHK@;M7UB8!3Q zuY)k7lg8`{prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&3=E9oo-U3d z6?5L++30uJK&16yw%D>yJYPhu4V;>UDt86~_2-)t>?x3KcE8}rPWZ_6M0roCTV{MAF6Z^{`?Q`wcx z4xZW}mO<`~lcHAG1hqF#x*u@(@Aumtvg}^pb{Cv+a=os)OJx6-ofme8WtPY;_P)3@ zTZKtV@SHI*g&n|&gHi^@GnZL?pWj$VNVRSWl#Vw9|Phukd7e;9}UVXS*>yT iz#Kn~Jj*M0=AM)f6WSKHHfQn@kd2e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{02oY3L_t(&-nE-)b0kM{rXTl+ z%(?&+8h!B4%!o6i8JT9ZX8RAc|NrxvNi$1|)HKN^+1)s*3Uy>ggzty&%qld{ZIW!a zXzWG)k2!c@jefYl-|D9q) z|GJ2vKrv$i?CJwCGei~fpAD~81T&)_A1#0YR=*ahzYka`1gX7&39nF6K$B=~dk$srs68b8ofgl-T_1QB5( zLhom41R~J+SqxV$N6UyR$Cp3f->X^`7J`mHk2&Y#2f7s%=>6YOgyb63QD|sf5s9N0 zNGYTfYh@sd(D<{822*fK=3o{a>l3v_a9i@M!O%sCxZe+5S54T@Sn?x z*&;wGNB31#GN68lJi3@02~dpA-#-JkxJ#+B5TP3mXV6$xhMJMhxbWZGjzZM;su|gp zDQ2U~1`&b?y`N!lT{C0m;bLYk!ys(++(ALr&8uwH#zG7sP=&WqLxbh>Nz4h*y0x+^ zB?3u=;O`Zx^~4I<-CA9kg0RF`nGxKA;%?sp7Xm*QuoJfqz}`b*F2dH&u=n5DxiLgs zsOs|%JiuJ~;2tOby=X&xs*Ijt#V~iiU`7%_%{ZL6Q}pl{)b(7I9YV$^#h6>+fS^+I z#f2HyR^6^qr2%@VVFdhQ23il?x^ic(wBC$8F!A?d#$j}EMmM%m(rUPg2nRDywjTGQ zfDz5zeE2)MRfo(x#9cvZTmY>Z(TuefOsb}DOHGi`jHwxGKS&3hVcb}K?v)4|U?C6? z_U^tS!VF_ujC-k{wFTx<^Te4MJC&M%heSG*oDZr&{nFTrj!FRYL|n6fEM5ji>-qzu zc;Xse5=@o3TVX50!nDSiyV1E@st2Y+Oadmt9GJR=Xa2seD=L&iC&J##9I9g|^=`}c zkYF$xvl{b5IH`_tUH?9MfLIkckCv~>iRxuQ5KL^$ z03%x!E&+3lox#GD7piN~`PVZ)Y%N`I<{nZ?;X;Kww{9asFQ5pmhgkp;!c6M#)C5`u z#1rXh<{uJORf!PA9}FgYx&S+!gR)sTz+aZ=kNEirQ02@*6feSBZcLw>S zoC)fRubxA3&jw=Cw4*}|wR>>ugKKW$F{4&3t^*J;;~7=^30Qhf4XNkZdd2;Z-_suU zeBf;lUuMXDhwOK7cS8#_O-nvs(!6}d{dC4O1iBNDHB^)ffsMgRAfN`7z>+!xQXW^^K) zd5M{b&;WwbnX#|}s}+3z9k$!m82f+p(wq0pZr;n}uxfC2(uTqGWQ{6MlG2xp{YNSpGk} z!Y^;QxOva^tKY-L1)T;=U@5|i+D8l?D<@$z7uXC{YebJme}7VlKvozz(4`;~pax!=yGDod_MqxhO40FR(9# z_Rx{O`73t6`RGAY2&`rcuG=YH2$`4J9I0iBxE@EU`^+N|t+}di!gbG9=urJ2e;1X!Np8o&* zE4JG{DX@uhJ)Ltso70DYY9NYGg8B#7qN2zVAem7@;SRWKCtT#j^UWQz530iOn!ov; zwFvt87o2t@GPa>O@lcg)Wt6`{)((g`2KM5=6k#nDb+uH883Rm8q2x^X`3>nKLIdnI zaNSNxF;+OK0duRg4mXDbnwQXIhK5jk1`#$PuvuR5a=+thb?eplfqFT6^P2Zfi@tnS zEsmqSlfrove!#G`6^<%Oz-STn0&|b$r86I$F+#vYDU{nAqu3nKfJo?O7GRt?r(CxNhhN==mAcRo8pcE%6tbScw z@EOpm5U6l)>#$QrNFlHY0SU2oZ9o2id;*w!=#10-mM>N}NZ(^QkB6`i0f#E#gl`*L zP6s1N;66s)F0Y=#ew^K}33s<_H=EIWL@Fm3VkCrs27REExU+(wTwvUKHcZ}ZB;d9f zZOOFTdv-tn_=K=B{`sWa@3;I)gdfgp`N{ry=E}umd*~5^3b~ZZx*ALc4k?jBVG{y( z>5}F8<^xYNp53qcThk&znavl(7!grM4$4DdD0$KR!*9$eC8Mt43lUZZ=hQgtZ*QKk zDZHI7Xf1Pj*gyGmfZ6VzUzN=3<#QwiEC@}Eq@2+ZXqtvx3T+5z2u!ppBIjJG=*g5O zXQULafkl5H?jI)C*>=Nhe$IZgA*IB8aYk$!q{u_s+Z7PSv2LTnTpN-=Mo=rv4LU0< zQ{v{$_m2eXLS!?Yu~(rqEzdTqC$g`*{bA3qSJ%9`d_f1q5NIdU(bcC-GlGlabaC(u zPbriTP!Z-$S44vf^%;?Y5cN$tpX#aL1}cw=%| z3b&gz(sz$Ux?5b(w=K_AdE2xQBUiWAAGQ2+zvIi*4L`s9oFYQoG*wX{5>!Dw4!r}^ z5Jo}lTQ14(7KGjXgXb@H_cZ5AvKjl`7F3we=7>y=&5GCcIMBJpY@}*82$xPL ztq~^c6}v|;R9Q`@SP0yxAjSA)I>RoXb9MK=_Pr~?1ZWEO;uXC9_F;zad)l1Xg#ZZM{y+?o5F3yA_L}il_di(xK!K27=vY}OYV#E8zIqxp79@OSX!msaGe*Yb1zptgvYMm|qxkxQ> zy%}Oht}MH|uVRDD=8wav?~m+4yeNQf#Vg;Oo*QqEPBD2_FF*1*V%ch|Xfu$;z z5|;YMg2#p<yDw2&xb2@$LMKcNd=)zS*p}{P8txx0U#ak;dH;t*);QM21}S%9UM$ zBIlQnpP8%0ZOmq{-|x6zugNJNJGlFjX-c8XnMo-ms|0?7a4(hSeX`ZmP-8Cyg6gOM zbAUhy+$}G;`TSQ{Y(6S{ynWB|+rJ`xPf2z17KT|{DPYc-yQO*!OjMa^K%4e4agln5 zrVrtysM4pNoH99Obn4U6&I)%W)1;m@C2n(~%Nfb((Zh@AI8zfZKXwA$iYVsbVRLrQ z>Q`TVTKL1B#n=Bvzgkhc1DZ2xMnH(FOk<$cz*2;Jr;pFAU_l=f7DET7b>=p7ZimC3 zloBbW3Z6;`SO~-rXhLMsw7d@y4S`uu+9&YwDd9Ij#NboP;cImS)lR1Lmsf1Q`a@O5 z$0(-FinG@>=J&ZKHvwWPHjkB=y#td94aX8zN+G30pL$BpsECq9 zS*mj3-P5@WS(KRw{Syzb<*z`_BWYho3|^N6G)A)3+8ct>UtF;L-5)<~`OO{kum26X zd0)LCr%F*<;kjG+-r%`UR{AHZjh;+chAFTCVd&C^2~TSUEt%^+u`Zc)&a6veVukBc zPR6ef5&FE88rR-^9rJGW_k}7!1F>lc)LhVCK4bTXKVi+sg%8^ev%h^yw^_4GnKmb; zrLeQY3#;7y4mbd|e=K+}I?l?DEqEO*=aNY&RcPM(s8)kgq;@Ye4HOZs0E-cw%^n}H z@A!vdYr@gcFmh52?4>3=Gb0Z(=@_xgOVU674{SRBxZCgUY5w*tvfUtN%nhb4^xVmY zUkAmy$DDm?TPG!WKy87IL_{fWtevO8U`EP`UFzAT%$ri@-ui@lzUVu?@tRxz7g`%e z^G4gYOs7*qjKsD@V?;wFhREdVIo%)s1kYZ4oXxmjGyVE6Y}RXbR=c$ye7j<0#@qFV zyjeeLi}&qhY)K!Ckwq!)!6KlY)qkX1h^17%+KjmhXF=(khWPUH$3)^`Pb`^*!`)(q z4qxQ)&dRJp%#yN~6rpGxP{idW{onr%TbzGX_I|&Gzx;2`S9ip|CmMVqLexOJyMNRX z6shOcfq5B{?kNrBv9Bsh2$8cU(l-qyHV_+fj1Ecy_shpXK}+Uhw`J|9Yuq|9P*G+v z60~aCRDIt?MutVr$cqK`+dp8F>BkdZPOQH93zO^jT<&-LrRyl&fy0llA1i7y<)9Tq zh}7C`qKHaGYdTaRMe7y$R#srnvqV5 z8phVMi47MakYXe^4eiAR@`pctQuy2*c=OF)2ycI3{q?^-W`b0?n@nr_X*Tlq!vfT> z38ktOE2xG58cJGg5_OEQa?r|fRcvJ8P{ta>Dd#2sE)l z!C6qNY-+K>P0naB4qiIG5SUC`@FXW6#QJA<*Tj_SR5j-jKm?EHRx5i_M8{DyQWpS3 zg&dUgra_jMy!i9~q`i3dUz)2G4csiwjuVyPKX-HGxaD9jqt;zE8;5Gej4807u4Ucj z!hhsUDUkl|*H{RTvT1YJ^X1(&jbm&nMoB$g*U@(ex}34plT%O0i9^ohoJm#}fO=8( z2)`ECFBW|E`#%z&$SEJKe9LE~wyiw^R12T5w%KD`gVqXE3{AdoTAcHqy34ObIe4hU_;NO7*|xm%C7yOV z+ILR}<+=otdAm4?#FVdKkk4bAO+N+XOX@YX~ z{3Y=>zk8Zo*zfrA-A|k!4p^V)4tsLfp;$dg2uzxWwrN>54OeZ;%h{~%&-5M3oU4^o ziRTwQ`-gw}B$HD#@bk0hlws?sG9teIb}(3lZYVxfUp3I*dzl@cNi#?QMgFP%6rsoRem zgUQ`3>mOf#l(jWcu3vn{zL`{EReV3sMt48%vVv+LxRDKrVn)IL14&sbk5%Mh6wbh+>peqx^C*Bpil^pL%tZ8SkIJWY-x6w#LU5Z5!74RVyzTV~z1x zCoC}y``(_+>b5Wh*Z~r3R!1SjdIKN*L`tHBC>UE+NL+H*f zxIVk!Fqt4R`dW6yqS?K&h#vR1Pj*_tXqu)@OPv%Myg3F96f4-U2kO17IZuVuji-ah z`r05^ArDFLWM_1?T(XUk)!i-U`yGq>HO+okhXwyx>mrmG*)7gl&(GL44a7(gA&>iN zI<9q?-=`T>c9PLzJmQU#GkxFDG;OWred-@9$&70`&Q|E4Rg811i}nfM1rs@$b3=#? z=gTGcA#i)Y;oWS`q!gxo$NX@h?e>Je!%7*id1MhxmDEnzw-a`gx+s)ltfS%qeGM0U zKJbijrQ}GXSCTSBVr-bS?Kqwqx->HzwwJ4w)z_Pk_b_U0HK}jD^ZAu{j~hiC?)nV} z*WY}xAcVm7enWTY=t5vKol*SOfsWzjdpBlvBWm2FW*koBlh{34nUj5WCl6H~ECn=8 zOY~`}s@B<=4<)H}914YO_$?%-WWxzngAheAbtcs(kNG4~4cD6xAv6uM;2#usl*56( zWP;R|@aUet0p;|N6&rU|pq3~(xdkCe?K7P^9?UF0=^d__Oxg)eTVs1bg2$C@=M8Yp zh7jt;(9l{AGbYtqBg?Ty3J@9Yj2tOvlghu_c5TF%F8KJ1Xy&ZvyH0Ysg7Xz+zToWc^S$S}O z(}k50LzFQqgN-w+p<=|QagPz&$%MY^n9t{kC{tB($@G0+6I0*QIF}}#v`Q&%bs@O5 zOUX1%Qzth$`>n!b7S~Y2ZAg?+Ll|RbNE&50_-U@Aj+yj>yIw=fI!tMX?c~$!j*Eh3#HR79gK-SirfJ66y0~|ZyXt;xIHr_F z&8TNtmAYJ4PN9%nvd^bh<^&t_0Dzppj3Z+5En;)cAMc4c$?ut6HBd?(-=iX<71OXh z;07DcVJEka>ZGL7PeZ~SlJ0Q!xZ7Y#A&7aY{uv2l2NVCY}?6+ mbs^_MjKMd?icg1R{eJ-tGYp5I&GSM40000 { - this.actionEnded(); - }); - this.cancel.visible = false; - this.cancel.input.useHandCursor = true; - this.addChild(this.cancel); - // Tooltip this.tooltip = new ActionTooltip(this); this.addChild(this.tooltip); @@ -61,7 +50,6 @@ module SpaceTac.View { }); this.actions = []; this.tooltip.setAction(null); - Animation.fadeOut(this.game, this.cancel, 200); } // Add an action icon @@ -123,7 +111,6 @@ module SpaceTac.View { // Called by an action icon when the action is selected actionStarted(): void { - Animation.fadeIn(this.game, this.cancel, 200); } // Called by an action icon when the action has been applied @@ -133,7 +120,6 @@ module SpaceTac.View { action.resetState(); }); this.battleview.exitTargettingMode(); - Animation.fadeOut(this.game, this.cancel, 200); } } } diff --git a/src/view/battle/ActionIcon.ts b/src/view/battle/ActionIcon.ts index b7f2fcc..b312221 100644 --- a/src/view/battle/ActionIcon.ts +++ b/src/view/battle/ActionIcon.ts @@ -16,6 +16,9 @@ module SpaceTac.View { // True if the action can be used active: boolean; + // True if the action is selected for use + selected: boolean; + // True if an action is currently selected, and this one won't be available after its use fading: boolean; @@ -28,6 +31,9 @@ module SpaceTac.View { // Layer applied when the action is active private layer_active: Phaser.Image; + // Layer applied when the action is selected + private layer_selected: Phaser.Image; + // Create an icon for a single ship action constructor(bar: ActionBar, x: number, y: number, ship: Game.Ship, action: Game.BaseAction) { super(bar.game, x, y, "battle-action-inactive"); @@ -41,12 +47,20 @@ module SpaceTac.View { // Active layer this.active = false; - this.layer_active = new Phaser.Image(this.game, 0, 0, "battle-action-active", 0); + this.layer_active = new Phaser.Image(this.game, this.width / 2, this.height / 2, "battle-action-active", 0); + this.layer_active.anchor.set(0.5, 0.5); this.layer_active.visible = false; this.addChild(this.layer_active); + // Selected layer + this.selected = false; + this.layer_selected = new Phaser.Image(this.game, this.width / 2, this.height / 2, "battle-action-selected", 0); + this.layer_selected.anchor.set(0.5, 0.5); + this.layer_selected.visible = false; + this.addChild(this.layer_selected); + // Icon layer - this.layer_icon = new Phaser.Image(this.game, this.layer_active.width / 2, this.layer_active.height / 2, "battle-actions-" + action.code, 0); + this.layer_icon = new Phaser.Image(this.game, this.width / 2, this.height / 2, "battle-actions-" + action.code, 0); this.layer_icon.anchor.set(0.5, 0.5); this.layer_icon.scale.set(0.25, 0.25); this.addChild(this.layer_icon); @@ -74,8 +88,10 @@ module SpaceTac.View { if (!this.action.canBeUsed(this.battleview.battle, this.ship)) { return; } - - console.log("Action started", this.action); + if (this.selected) { + this.bar.actionEnded(); + return; + } // End any previously selected action this.bar.actionEnded(); @@ -87,11 +103,8 @@ module SpaceTac.View { // Update fading statuses this.bar.updateFadings(this.action.getActionPointsUsage(this.battleview.battle, this.ship, null)); - // Set the lighting color to highlight - if (this.game.renderType !== Phaser.HEADLESS) { - // Tint doesn't work in headless renderer - this.layer_active.tint = 0xFFD060; - } + // Set the selected state + this.setSelected(true); if (this.action.needs_target) { // Switch to targetting mode (will apply action when a target is selected) @@ -118,8 +131,6 @@ module SpaceTac.View { // Called when a target is selected processSelection(target: Game.Target): void { - console.log("Action target", this.action, target); - if (this.action.apply(this.battleview.battle, this.ship, target)) { this.bar.actionEnded(); } @@ -130,12 +141,18 @@ module SpaceTac.View { if (this.targetting) { this.targetting = null; } - this.layer_active.tint = 0xFFFFFF; + this.setSelected(false); this.updateActiveStatus(); this.updateFadingStatus(this.ship.ap_current.current); this.battleview.arena.range_hint.clearPrimary(); } + // Set the selected state on this icon + setSelected(selected: boolean) { + this.selected = selected; + Animation.setVisibility(this.game, this.layer_selected, this.selected, 300); + } + // Update the active status, from the action canBeUsed result updateActiveStatus(): void { var old_active = this.active; @@ -152,12 +169,7 @@ module SpaceTac.View { var old_fading = this.fading; this.fading = this.active && !this.action.canBeUsed(this.battleview.battle, this.ship, remaining_ap); if (this.fading != old_fading) { - if (this.fading) { - this.game.tweens.create(this.layer_active).to({ alpha: 0.4 }, 100).delay(180).to({ alpha: 1 }, 90).to({ alpha: 0.4 }, 80).delay(130).to({ alpha: 1 }, 100).to({ alpha: 0.4 }, 90).delay(160).to({ alpha: 0.8 }, 70).loop(true).start(); - } else { - this.game.tweens.removeFrom(this.layer_active); - this.layer_active.alpha = this.active ? 1 : 0; - } + Animation.setVisibility(this.game, this.layer_active, this.active && !this.fading, 500); } } }