From 3dc55c26aa7684989cbf8169a6f6ed3138627f88 Mon Sep 17 00:00:00 2001 From: Marty <104225647+mklemmingen@users.noreply.github.com> Date: Mon, 8 Jan 2024 17:56:41 +0100 Subject: [PATCH] new damage number system --- assets/Misc/blackCircle.png | Bin 0 -> 4471 bytes assets/numbers/colourPalette.ase | Bin 0 -> 306 bytes assets/numbers/greenEight.png | Bin 0 -> 143 bytes assets/numbers/greenFive.png | Bin 0 -> 163 bytes assets/numbers/greenFour.png | Bin 0 -> 155 bytes assets/numbers/greenNine.png | Bin 0 -> 167 bytes assets/numbers/greenOne.png | Bin 0 -> 170 bytes assets/numbers/greenSeven.png | Bin 0 -> 228 bytes assets/numbers/greenSix.png | Bin 0 -> 155 bytes assets/numbers/greenThree.png | Bin 0 -> 231 bytes assets/numbers/greenTwo.png | Bin 0 -> 232 bytes assets/numbers/greenZero.png | Bin 0 -> 139 bytes assets/numbers/orangeEight.png | Bin 0 -> 145 bytes assets/numbers/orangeFive.png | Bin 0 -> 169 bytes assets/numbers/orangeFour.png | Bin 0 -> 160 bytes assets/numbers/orangeNine.png | Bin 0 -> 169 bytes assets/numbers/orangeOne.png | Bin 0 -> 171 bytes assets/numbers/orangeSeven.png | Bin 0 -> 232 bytes assets/numbers/orangeSix.png | Bin 0 -> 159 bytes assets/numbers/orangeThree.png | Bin 0 -> 231 bytes assets/numbers/orangeTwo.png | Bin 0 -> 234 bytes assets/numbers/orangeZero.png | Bin 0 -> 141 bytes assets/numbers/redEight.png | Bin 0 -> 143 bytes assets/numbers/redFive.png | Bin 0 -> 165 bytes assets/numbers/redFour.png | Bin 0 -> 158 bytes assets/numbers/redNine.png | Bin 0 -> 168 bytes assets/numbers/redOne.png | Bin 0 -> 170 bytes assets/numbers/redSeven.png | Bin 0 -> 229 bytes assets/numbers/redSix.png | Bin 0 -> 154 bytes assets/numbers/redThree.png | Bin 0 -> 229 bytes assets/numbers/redTwo.png | Bin 0 -> 233 bytes assets/numbers/redZero.png | Bin 0 -> 139 bytes assets/numbers/yellowEight.png | Bin 0 -> 145 bytes assets/numbers/yellowFive.png | Bin 0 -> 171 bytes assets/numbers/yellowFour.png | Bin 0 -> 163 bytes assets/numbers/yellowNine.png | Bin 0 -> 172 bytes assets/numbers/yellowOne.png | Bin 0 -> 175 bytes assets/numbers/yellowSeven.png | Bin 0 -> 235 bytes assets/numbers/yellowSix.png | Bin 0 -> 159 bytes assets/numbers/yellowThree.png | Bin 0 -> 234 bytes assets/numbers/yellowTwo.png | Bin 0 -> 237 bytes assets/numbers/yellowZero.png | Bin 0 -> 142 bytes core/src/com/boomchess/game/BoomChess.java | 185 ++++++++++++++-- .../com/boomchess/game/backend/Soldier.java | 6 +- .../game/frontend/actor/HealthNumber.java | 199 ++++++++++++++++++ .../game/frontend/stage/GameStage.java | 21 +- 46 files changed, 384 insertions(+), 27 deletions(-) create mode 100644 assets/Misc/blackCircle.png create mode 100644 assets/numbers/colourPalette.ase create mode 100644 assets/numbers/greenEight.png create mode 100644 assets/numbers/greenFive.png create mode 100644 assets/numbers/greenFour.png create mode 100644 assets/numbers/greenNine.png create mode 100644 assets/numbers/greenOne.png create mode 100644 assets/numbers/greenSeven.png create mode 100644 assets/numbers/greenSix.png create mode 100644 assets/numbers/greenThree.png create mode 100644 assets/numbers/greenTwo.png create mode 100644 assets/numbers/greenZero.png create mode 100644 assets/numbers/orangeEight.png create mode 100644 assets/numbers/orangeFive.png create mode 100644 assets/numbers/orangeFour.png create mode 100644 assets/numbers/orangeNine.png create mode 100644 assets/numbers/orangeOne.png create mode 100644 assets/numbers/orangeSeven.png create mode 100644 assets/numbers/orangeSix.png create mode 100644 assets/numbers/orangeThree.png create mode 100644 assets/numbers/orangeTwo.png create mode 100644 assets/numbers/orangeZero.png create mode 100644 assets/numbers/redEight.png create mode 100644 assets/numbers/redFive.png create mode 100644 assets/numbers/redFour.png create mode 100644 assets/numbers/redNine.png create mode 100644 assets/numbers/redOne.png create mode 100644 assets/numbers/redSeven.png create mode 100644 assets/numbers/redSix.png create mode 100644 assets/numbers/redThree.png create mode 100644 assets/numbers/redTwo.png create mode 100644 assets/numbers/redZero.png create mode 100644 assets/numbers/yellowEight.png create mode 100644 assets/numbers/yellowFive.png create mode 100644 assets/numbers/yellowFour.png create mode 100644 assets/numbers/yellowNine.png create mode 100644 assets/numbers/yellowOne.png create mode 100644 assets/numbers/yellowSeven.png create mode 100644 assets/numbers/yellowSix.png create mode 100644 assets/numbers/yellowThree.png create mode 100644 assets/numbers/yellowTwo.png create mode 100644 assets/numbers/yellowZero.png create mode 100644 core/src/com/boomchess/game/frontend/actor/HealthNumber.java diff --git a/assets/Misc/blackCircle.png b/assets/Misc/blackCircle.png new file mode 100644 index 0000000000000000000000000000000000000000..96d88825114f8a74fd9ec611b1c446bb8805e6e6 GIT binary patch literal 4471 zcmeHKdr(x@8NVATPoW?}kfK}{Eo!*CcX#i?-Ybhdc7?4hY!NL4t=`uzSJ(%;ci9Cd zT8YF*B4C|FR6@}pL0Xg4j0scGL@*hXHj%_f4YdRTjm=OECQ6$a>AAarFwIPdndU$4 z&V8Kk{J!7$zTf%InLWD=IhnzM(SZ;I1?#djdEjjjZhv3!tPQ(&0=&8^^9%Sq(goY> zRwGx+!hD5|g;_UegdlgX+3?GdZrK0(FXpeTej+cqcH?O#>DtK7^uvF;v$X43Qs-=oE_`;9ye}^F)06hVM#c3 z_Kg(}-s##2cQt5Isn(_sCAazuH;rD_JD(gZ?0aV0)#f~GL4Ww}!R(}jf#8A9^lQH8 z%#9%%8;9rl=KLo+^CpQnYs7nykgaVe;soc)8L z_Ue7K$k|pOv+7^551URD9%{1hPY-~JEaESGjE@UBdD(#hN&aT738PJ7Sn))Z$+$^{C#K!4`8_m3DS*Wlla_SwiECcvVVZ zvYP+|W|k*mx4G2fAlz!PhnE1~f>|ntJrKS`EiTX-;0&vsg)s>xK@qK+E0>E?0^wvk zVx?C=aOChn^O;Q<-<5E;EmCF%;KpYhoo^&G?N1Q<6<##cQG^;IVEqvTm3WlEaw>j;lo^%*m%9gTb0Cj*-Wz&Yt)aebA9)biW z&TR8|0kNkcdCvG)tZA_cJ)U%?1_InCd8eT#a`%7%O0Oq0R@y0qr_-p#!uSMZr8$Q1 zeBv^U!YH{Bk>j`u!4!-VQBgRH;Iv$ZQYePfEIx%wXL0bPg=PgRKrZ0`kBpLIiAG9> zC{QDfU`a_vgrZOu!5CI$R51!R(U>%aBG=A=sw7LNMkP=&fC^KPG>s{6gu+NAf{_^b zq8S=tRJekXu^5e_sE3N7iPcuSnFQ0xnMo5XwOLG_4nc4t&7f0@YAk)mo|+3n9RQ=VZ4YEGUNLNe#)ffE1Nu1S%s?RlY2dP@)8e zJ|#4#;H?a2toUDOVfnzx-bv5m9ANwkkIB2H*0N>ZmbY2Tc@`54dzJ-3(%uvtWI4-t z;sjjYF1nbsm{_oXj2G;Lo%?}eKaEehdMsGb$ zvOBCs-bLEkG!xJfXax$?qZPbte5#gDkH%HZ3iALYLr@tqMKZB;JXxu*V@zb5Ed4J% zl0ASaTMY2?+Q8NYc0%doRyeK~i1o+3#^>S390G=C2bqz+vvSSKH6sOP1fH#~S-EDU zz>L7N)%AaqEAa7QinV}$KrV1p`ug}Uq~Mt4ORdS&Kx4wM`OK^PfhE9}Rp@}Apm5<9 zL5CWnfYFcF>9u~hMgBjPFI!lR!<8+#|e0T3Zucw7{p>s8#G`#Zd=9H4$caLtl z^n!Zq^}^=(c>m&)kzwG%BdNRb*3P$}PQRZAM1S;2E&V>)ad9!d?7FF57Gqh-MBOl_ z&5i3o>d8H$(Nxsnnd+!p?z*r!ou*x)KE?UZkH*D{@oO#Rb6U@Bj#yK`2fVsZFWXLq zH$0c}p3k1_&Cx%L2=9R8Y$|+e@716Eh!Ofs1}k9D(qG-u>bAanioe_HvHi+=1FHwg8 literal 0 HcmV?d00001 diff --git a/assets/numbers/colourPalette.ase b/assets/numbers/colourPalette.ase new file mode 100644 index 0000000000000000000000000000000000000000..6387bea4dd0b48f0f7853d4e5f59d038d05f85ba GIT binary patch literal 306 zcmXqFWMFu(l#xMzfsug&h#44CfEWQ-5lot}HUUlj^^pZ`s|AoRsQ|N;1>Mg73=B~8 z3e0E#kwE-k5=gOt+z-+UQUa830I}pj5(>;f5(Ypz*cp5hD^rUU42^&sRt1REeK<7OFgpbZS3u6{1-oD!M`#mJof+q literal 0 HcmV?d00001 diff --git a/assets/numbers/greenFour.png b/assets/numbers/greenFour.png new file mode 100644 index 0000000000000000000000000000000000000000..b67176bb897d6dcc1b9424c5b34f8e60a0b28611 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq>?;c978-h-(K_PVo=~<33&Uj ze4TIi688&0v|5dN2@|4fGGxc|uO13IPJfo=YQugSKMz`w20uQPz-gx>v ziA>ae_G#+u$vi^+2P3B({{D9xBZq*3L%Ynsyyj&LE0m;k7X&b$2inHq>FVdQ&MBb@ E0FO8|t^fc4 literal 0 HcmV?d00001 diff --git a/assets/numbers/greenNine.png b/assets/numbers/greenNine.png new file mode 100644 index 0000000000000000000000000000000000000000..85200ba7fb95f739c24c7152112942c1bd18d587 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lr1Csn978-h-%j)9I-tPgBK-32 z`ZeD5yje0{8lS@!eKKHd?{INnK3C^v;>BHirt)55nP|G?>r`X8&o1%5ZYPDX)GM}% zxCz{{Kl*d~UE{*c{9M&XD*g?z>bn=bv6=BjWIa^2Vx Rv=(SHgQu&X%Q~loCIDIsJy-w$ literal 0 HcmV?d00001 diff --git a/assets/numbers/greenOne.png b/assets/numbers/greenOne.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2462e82348198d610739103d1cf09c44d5fe7e GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`LqzXM<978-h-(EY&)u15I@=&wt zfA~6Yr)|6XHVY{JF6aIe#qV`MYVLREErAhx55;aaj-Pvy{bcT^1p)FR%RW19G}G|A z&dwZZU=S`#HqH!;DqT%??3FVdQ&MBb@0A3|N_y7O^ literal 0 HcmV?d00001 diff --git a/assets/numbers/greenSeven.png b/assets/numbers/greenSeven.png new file mode 100644 index 0000000000000000000000000000000000000000..13d5aa3d0917408503f61628ce2697477fbb73d0 GIT binary patch literal 228 zcmVH|7UzL5r#r(2N>s*F*#{>b0K^^V)2$j5=gNGDzFTC$Pg1ZFdF-0@DQ7# zOAu$dk#CRr7JYuvDq>(O`5`oVZedltn&(AMs-tB238xVu(6ry5A33? zHnsxGpzcMPY`F&qeiIA(khG2~1pkVQEDQaJDI7QgYM?kReT9Q3%H*OroOEr4#6{+A exsG%_zl{^_^dvq5z~SZq0000?;c978-h-%c~+Vo=~=Uj5_0 z{`HGmVq3~MX3Q3OV!+z0^kPcp@pluAEu6{1-oD!M< Df%P?h literal 0 HcmV?d00001 diff --git a/assets/numbers/greenThree.png b/assets/numbers/greenThree.png new file mode 100644 index 0000000000000000000000000000000000000000..e705f677be8e59885e0395a7095af1edbaaa5d19 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq}F-5IEHw1KAm=u?|=e_bK%YZ z|2J9ds98Bi8|dAv`ur)!HDKa>P1DsnHyu6R8ZiYgXqQgfl&#y_<8k`~V~?xfUPT!W zx%T@DAMvpZ9i1i4s^Ow*_ld!b-Rhm{^MXftJSE@E-U$?>Gc!+SFXq^FxpCso6->>q z8eMF7R%CkWPqvLou`Y3Y-o@lnpI9^TV(s?=fm-L+3yos*>R6S3j3^P6P)0000{fF*s;>O?S+n9rZP~_#bz+}RSnRmm+4lRGiu$4WnF@|gESy3r oKMZG-&raHVIKFa^(BtO}y??np-tK4(1Dej@>FVdQ&MBb@02q-oSO5S3 literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeEight.png b/assets/numbers/orangeEight.png new file mode 100644 index 0000000000000000000000000000000000000000..371cbf7f1d25200747a0aa7d4f1b0fbc17aae0c9 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq#`_B978-hlM^J~GziZ8yub0G zePo-7!kI?n6Q(?O1Jt~D4zjJtQ{dL)d{S_bt$_97gYTbKG%jZ2^JXr5mRi)k`QZDf u7e5tTIS|O~&U=K*EuqrmtJ=p0>mdKI;Vst0QZ$dIsgCw literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeFour.png b/assets/numbers/orangeFour.png new file mode 100644 index 0000000000000000000000000000000000000000..445dfa3b329db88a210b3463af590caab13c32c8 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq|!ZI978-h-%dNr#h}2^yjK1D z*|$LfvPpj(PnL<=r=Re6Vm-5KX4l$p?Q+*dwyss~TJ6VC!_qNFglCPT@`}yoUl?WD z4vT28pEPVgdgkub*PfRb>@kvAknv+*y%~#;heG4;TYv9bg)*IMQ(F7y!Xgczl?QClxEkZf6YsdmPsDf TT*xaAw41@x)z4*}Q$iB}%=tja literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeOne.png b/assets/numbers/orangeOne.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4742adabdb93e3775ad298a72341cf51505ca7 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq>4OU978-h-(GX%Yf#{Exp=YS z!@WIujth9!8n%5||I|{?geiInQ)r{nbvd3eS%KeYPTnb16;6?#%x25$c-~6*%Qe=$ zuiFxqu=T8Y-E>jQVAndv`Df!cYeq21@i44251U&1yU@enAd9e1LHdNOr_+D@zq>?3 WdXMg=3wc1>89ZJ6T-G@yGywoOu0Qqw literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeSeven.png b/assets/numbers/orangeSeven.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd12efb6fb1a5b57fafbf6261120466a455aa0d GIT binary patch literal 232 zcmVP)L6Qa}Ok{_IiVNiNm1?YiE=g-$B~0000pQZJ#f_2+}{pH?(3W}C!V@Jyu0d;Y=qsjIdpxGOL)^r?t?c7OaH3bc{I)78&q Iol`;+0CVIwm;e9( literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeThree.png b/assets/numbers/orangeThree.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ff1d8a40bfcdc4b9c9d51bd367e86a4227d5be GIT binary patch literal 231 zcmVH%cpK|oDYW|^JgBGaKaI@J^;`ug?7Mt9xAUi9}z50&L|`j7rVPev7f+lZ`u heTnccquc2NIsq2HKD*LjD3AaE002ovPDHLkV1kCUV!HqU literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeTwo.png b/assets/numbers/orangeTwo.png new file mode 100644 index 0000000000000000000000000000000000000000..d20f6ff64d7e402725684db2e53bfe73ba6aa5e8 GIT binary patch literal 234 zcmVHi{XGrYlGKC zhAa=yT`$>cUYemS&05KbS5pi%C%}N{NeVM;`E=J3dZspigd}NlO@=NO9R>4!=)EW1 z46TOEl^l5%TnrI^&XXK{1!0EhaZ~|OcC}EIxe!B*9S7p;=bMrpNlb>`yK%VWA>$m; km!_|-zhIEWqxOS10T&Q9M6F~dkN^Mx07*qoM6N<$f@&aK&;S4c literal 0 HcmV?d00001 diff --git a/assets/numbers/orangeZero.png b/assets/numbers/orangeZero.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2cae41545bf2e9a2cdc5ead3044f66946c79bc GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq(VGh978-h-(K6u#h}2!63}gT z$A0}SWR6jJe+ qpy1df-<-JpYw@SR`{uoDED&*16m=d#Wzp$PzIgfWW% literal 0 HcmV?d00001 diff --git a/assets/numbers/redEight.png b/assets/numbers/redEight.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3629ca166f0cf8c92f03fe2e6c60f919f1ffec GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq{2L1978-h-(K6u#h}2!a>4l5 z|M+dDF5;yVcFpd3(AXqoU|SR~azRDu`p&k5LBY{n{@vkk`XB$uxcTsTrBBP(1=_&i>FVdQ&MBb@0Ng$^)&Kwi literal 0 HcmV?d00001 diff --git a/assets/numbers/redFive.png b/assets/numbers/redFive.png new file mode 100644 index 0000000000000000000000000000000000000000..343a9707b813429b11e8b82adf765fb0c2cbcfb2 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq;fo6978-h-(EY&bwGiK`GUsp z|MAzdb*yu8TNa)5bd(DX;7;*>e3GF}IMbvrQS7bY6J4PR+yB%=eo?pF9+S{`ym`{| z?)Q6_IO(O`m#mtvEp483-sZb_Ktkiq14~6a%MutuR~!%v5UpgdPE<3zBj6UkT@d65 N22WQ%mvv4FO#toTJHh|} literal 0 HcmV?d00001 diff --git a/assets/numbers/redFour.png b/assets/numbers/redFour.png new file mode 100644 index 0000000000000000000000000000000000000000..7afb0a28854ad3bf6c8955af669953974636a0b3 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq*6Uy978-h-(GX%I-tPga&i8> z|L0z=Qn=*RqkF?(v*`RlCxJR~_VN#J>RxZmyEx;_#I-ID)Do5~J(R%Rdm$-5f?0;I z-SfnQqg?Bg_U$dI4r1CA{Xz5M!`=0_IYcx99#ncns)eN4lelF{r5}E*6g+Ms~ literal 0 HcmV?d00001 diff --git a/assets/numbers/redOne.png b/assets/numbers/redOne.png new file mode 100644 index 0000000000000000000000000000000000000000..6550437b91891981176fb7f1ca994a6a279e1136 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`LqzXM<978-h-(K_NYcSw(4s71> zf9m0FB_6TtiXl(ezdWqtz!06%AenGxD|>S&`yFHT;_FjmCe->!g-A7>vJww@-Sldg zqQpu@<=49swy;aYUT-Mfd_9M2T0;}#fv?9_ZOXUj<5ZiG(8T$UCur>-q5u1(%U_7t Uoas253bdTT)78&qol`;+0QMa}!T^P)sgsoP9K4h)>Za z2(sMDcS;Uzy5=wB|L>d*gTe~DWM4f Dgv~bN literal 0 HcmV?d00001 diff --git a/assets/numbers/redThree.png b/assets/numbers/redThree.png new file mode 100644 index 0000000000000000000000000000000000000000..53f07c7486e0c01c0f3e0771087019b1a6f75901 GIT binary patch literal 229 zcmV^P)6r>QP=*T_T5UAWs%Hhae7pV3&>=1F+1V$zgTY-+HK8E~h{AJGwKf@ZaWyEc$(! f@h+p&=>s|dWrHd^5jwH`00000NkvXXu0mjfM3h-s literal 0 HcmV?d00001 diff --git a/assets/numbers/redTwo.png b/assets/numbers/redTwo.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0c8258ab0ee1be02a0a8aaff8877ada7e1273e GIT binary patch literal 233 zcmV0n>_;jm-8T>krY}qsb2@;-p9uTjJt`trOcy+R6HTqJ z481%ucYn!V^U8#JY4(wLUR0kQ>srAmoR!ZPA_@NbM6-U j$m?t9uYgGUQu{$%)|Vti3=tYx00000NkvXXu0mjfK;B=y literal 0 HcmV?d00001 diff --git a/assets/numbers/redZero.png b/assets/numbers/redZero.png new file mode 100644 index 0000000000000000000000000000000000000000..04d8158232a3d44cf1ff05aa2ef4a6f6a5b81e9c GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq=GzM978-h-(EB1Vld!fJ`nNi zzy9s59mdKI;Vst0NCj=fdBvi literal 0 HcmV?d00001 diff --git a/assets/numbers/yellowEight.png b/assets/numbers/yellowEight.png new file mode 100644 index 0000000000000000000000000000000000000000..5d30973fba1bc9a4b737829f1cf70f4fd2ab5b7c GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq#`_B978-hlM^J~GziZ8{9p8N z{U#nk=NZiD6S5_CE%ccp(Zm~Y*Fh{s=)}V&-UnQZ4!(aH$n4H5GmY)hnbS|i(wpy} vUi|doipIrkeNr8wJqJEbc;)-(AV0%K9#Ofvf2se0b})Fl`njxgN@xNAQ$jXG literal 0 HcmV?d00001 diff --git a/assets/numbers/yellowFive.png b/assets/numbers/yellowFive.png new file mode 100644 index 0000000000000000000000000000000000000000..59b48d2c8451738d069ec5f73c40c5575b9a8f3b GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq>4OU978-hlM^J~GziZ8{9p8N z{U#nk=NZiD6S5_CE%ccp(Zm~Y)FDNGv%umG5d(|8Hdzl=G#J{@6DD~dJBdZ1u9VTOw9mc|oo4~Q<@jVsqJD=-S$ED&&jka2LhShd1Xu|6ggzRE}Ox`klv@3UVh~N9-yrZ Mp00i_>zopr0J>j2a{vGU literal 0 HcmV?d00001 diff --git a/assets/numbers/yellowNine.png b/assets/numbers/yellowNine.png new file mode 100644 index 0000000000000000000000000000000000000000..00dad3c83093b1c1716b8e2a3aad9075b556624d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq>4RV978-hlM^J~Gzi8%_^;je zUqxD}&4B%=LlKX&`IJtnHbrK&LtY-tIy+P*9A=e1@Kkx#?t&`^0-4#H8!d{tc2-t@ zsFuuASa_%*!eN`@i^QJ513}z9QWjYcRx}@Y=Wwv_IMgZJkw_TruvwbZtjfuWXP Vn%Q-gX%^6W22WQ%mvv4FO#m{+LRQNr^BqNg}>e|W$ zTlF$x%~@5F zGF!dGq}T(GxIQ0z|1^-pAN}C*yq5&khoUV^F^4Y4A4dfPgg&e IbxsLQ0A?IErvLx| literal 0 HcmV?d00001 diff --git a/assets/numbers/yellowThree.png b/assets/numbers/yellowThree.png new file mode 100644 index 0000000000000000000000000000000000000000..02c1de093903a3d11b83b0a4314cddbd6964e539 GIT binary patch literal 234 zcmVhufj%4hAyK>NW*wL@7FQ3)TgC?j_~0=dKC#&Nl22ac2S}n+I}; zx>JD>cPcQd2at&e0W}SoWp;*7nGU_tsiq*&=dUj|y6YacqQ5_Ss4SPmfAkxAGOF;~ kMr7veON4hB-A*4+22-6sCHc`UlK=n!07*qoM6N<$f(Oo7CIA2c literal 0 HcmV?d00001 diff --git a/assets/numbers/yellowTwo.png b/assets/numbers/yellowTwo.png new file mode 100644 index 0000000000000000000000000000000000000000..9477ce9c89e94a29a5256a78120dd2286b1c4d83 GIT binary patch literal 237 zcmVgVt0{(>6JS8}B!wBad|I@Go~g|rAxWBClc9@6N5Om_ zdhba$L#ttPB}bkG7emCK^CU-KL6{+W992M+UEQh5T!^8@jsx-a{Y}Y^Bql@e-8fwG nka3RaOVd}^Uoc4GQTst06Qnjol5$y800000NkvXXu0mjf{ibCq literal 0 HcmV?d00001 diff --git a/assets/numbers/yellowZero.png b/assets/numbers/yellowZero.png new file mode 100644 index 0000000000000000000000000000000000000000..580d39fd244d3e9a4c08cf4fb23746bdfd40dd65 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lc!3HG%8Q!`Lq(VJi978-hlM^J~GziZ8{9p8N z{U#nk=NZiD6S5_CE%ccp(Zm~Y*Fh{s=)}V&-UnQZ4!(aH$n4H5V_I lIq!4chw7QHd> 140) { - font.getData().setScale(3f); + font.getData().setScale(2f); sliderSize = 4f; } else if (tileSize > 100) { - font.getData().setScale(2f); + font.getData().setScale(1.5f); sliderSize = 2.5f; } else if (tileSize > 50){ - font.getData().setScale(1.5f); + font.getData().setScale(1); sliderSize = 1.5f; } else { - font.getData().setScale(1.5f); + font.getData().setScale(1f); sliderSize = 1f; } @@ -720,6 +770,59 @@ private static void loadAllAssets() { threeTOthreeCircle = new Texture(Gdx.files.internal("Misc/threeTothreeCircle.png")); fiveTOfiveCircle = new Texture(Gdx.files.internal("Misc/fiveTofiveCircle.png")); + // loading coloured numbers + redOne = new Texture(Gdx.files.internal("numbers/redOne.png")); + greenOne = new Texture(Gdx.files.internal("numbers/greenOne.png")); + yellowOne = new Texture(Gdx.files.internal("numbers/yellowOne.png")); + orangeOne = new Texture(Gdx.files.internal("numbers/orangeOne.png")); + + redTwo = new Texture(Gdx.files.internal("numbers/redTwo.png")); + greenTwo = new Texture(Gdx.files.internal("numbers/greenTwo.png")); + yellowTwo = new Texture(Gdx.files.internal("numbers/yellowTwo.png")); + orangeTwo = new Texture(Gdx.files.internal("numbers/orangeTwo.png")); + + redThree = new Texture(Gdx.files.internal("numbers/redThree.png")); + greenThree = new Texture(Gdx.files.internal("numbers/greenThree.png")); + yellowThree = new Texture(Gdx.files.internal("numbers/yellowThree.png")); + orangeThree = new Texture(Gdx.files.internal("numbers/orangeThree.png")); + + redFour = new Texture(Gdx.files.internal("numbers/redFour.png")); + greenFour = new Texture(Gdx.files.internal("numbers/greenFour.png")); + yellowFour = new Texture(Gdx.files.internal("numbers/yellowFour.png")); + orangeFour = new Texture(Gdx.files.internal("numbers/orangeFour.png")); + + redFive = new Texture(Gdx.files.internal("numbers/redFive.png")); + greenFive = new Texture(Gdx.files.internal("numbers/greenFive.png")); + yellowFive = new Texture(Gdx.files.internal("numbers/yellowFive.png")); + orangeFive = new Texture(Gdx.files.internal("numbers/orangeFive.png")); + + redSix = new Texture(Gdx.files.internal("numbers/redSix.png")); + greenSix = new Texture(Gdx.files.internal("numbers/greenSix.png")); + yellowSix = new Texture(Gdx.files.internal("numbers/yellowSix.png")); + orangeSix = new Texture(Gdx.files.internal("numbers/orangeSix.png")); + + redSeven = new Texture(Gdx.files.internal("numbers/redSeven.png")); + greenSeven = new Texture(Gdx.files.internal("numbers/greenSeven.png")); + yellowSeven = new Texture(Gdx.files.internal("numbers/yellowSeven.png")); + orangeSeven = new Texture(Gdx.files.internal("numbers/orangeSeven.png")); + + redEight = new Texture(Gdx.files.internal("numbers/redEight.png")); + greenEight = new Texture(Gdx.files.internal("numbers/greenEight.png")); + yellowEight = new Texture(Gdx.files.internal("numbers/yellowEight.png")); + orangeEight = new Texture(Gdx.files.internal("numbers/orangeEight.png")); + + redNine = new Texture(Gdx.files.internal("numbers/redNine.png")); + greenNine = new Texture(Gdx.files.internal("numbers/greenNine.png")); + yellowNine = new Texture(Gdx.files.internal("numbers/yellowNine.png")); + orangeNine = new Texture(Gdx.files.internal("numbers/orangeNine.png")); + + redZero = new Texture(Gdx.files.internal("numbers/redZero.png")); + greenZero = new Texture(Gdx.files.internal("numbers/greenZero.png")); + yellowZero = new Texture(Gdx.files.internal("numbers/yellowZero.png")); + orangeZero = new Texture(Gdx.files.internal("numbers/orangeZero.png")); + + Gdx.app.log("BoomChess", "Loading Assets: HealthNumber assets finished"); + // Loading Texture of the map medievalMaps = new RandomImage(); @@ -740,6 +843,11 @@ private static void loadAllAssets() { modernMaps.addTexture("map/map3/map5.png"); // cool black and white map modernMaps.addTexture("map/map3/map6.png"); // cool black and white map + Gdx.app.log("BoomChess", "Loading Assets: HealthNumber assets"); + // black circle + + blackCircle = new Texture(Gdx.files.internal("Misc/blackCircle.png")); + // texture for the action Running logo actionOngoing = new Image(new Texture(Gdx.files.internal("Misc/actionOngoing.png"))); actionOngoing.setSize(tileSize*2.5f, tileSize*1.2f); @@ -1422,6 +1530,57 @@ public void dispose() { background_music.dispose(); menu_music.dispose(); creditsMusic.dispose(); + + // dispose of all numbers + redOne.dispose(); + greenOne.dispose(); + yellowOne.dispose(); + orangeOne.dispose(); + + redTwo.dispose(); + greenTwo.dispose(); + yellowTwo.dispose(); + orangeTwo.dispose(); + + redThree.dispose(); + greenThree.dispose(); + yellowThree.dispose(); + orangeThree.dispose(); + + redFour.dispose(); + greenFour.dispose(); + yellowFour.dispose(); + orangeFour.dispose(); + + redFive.dispose(); + greenFive.dispose(); + yellowFive.dispose(); + orangeFive.dispose(); + + redSix.dispose(); + greenSix.dispose(); + yellowSix.dispose(); + orangeSix.dispose(); + + redSeven.dispose(); + greenSeven.dispose(); + yellowSeven.dispose(); + orangeSeven.dispose(); + + redEight.dispose(); + greenEight.dispose(); + yellowEight.dispose(); + orangeEight.dispose(); + + redNine.dispose(); + greenNine.dispose(); + yellowNine.dispose(); + orangeNine.dispose(); + + redZero.dispose(); + greenZero.dispose(); + yellowZero.dispose(); + orangeZero.dispose(); } public static void switchToStage(Stage newStage) { @@ -1672,7 +1831,7 @@ public static Coordinates calculateTileByPXNonGDX(int pxCoordinateX, int pxCoord // method for checking which tile a pxCoordinateX and pxCoordinateY is in, creating the coordinates object // of the respective tile and returning it - Coordinates iconTileCoordinate; + Coordinates iconTileCoordinate = new Coordinates(); iconTileCoordinate = calculateTileByPX(pxCoordinateX, pxCoordinateY); @@ -1932,6 +2091,4 @@ public static int getSpecialMalusValue(Soldier soldier){ return specialValue; } - - } \ No newline at end of file diff --git a/core/src/com/boomchess/game/backend/Soldier.java b/core/src/com/boomchess/game/backend/Soldier.java index e19b540..5c48396 100644 --- a/core/src/com/boomchess/game/backend/Soldier.java +++ b/core/src/com/boomchess/game/backend/Soldier.java @@ -14,7 +14,7 @@ public abstract class Soldier { protected String teamColor; protected int health; - public static int standardHealth; + private int standardHealth; public Soldier(String teamColor, int health) { this.teamColor = teamColor; @@ -79,4 +79,8 @@ public ArrayList mathMove(int positionX, int positionY) { } return possibleMoves; } + + public int getStandardHealth(){ + return standardHealth; + } } diff --git a/core/src/com/boomchess/game/frontend/actor/HealthNumber.java b/core/src/com/boomchess/game/frontend/actor/HealthNumber.java new file mode 100644 index 0000000..170aa1a --- /dev/null +++ b/core/src/com/boomchess/game/frontend/actor/HealthNumber.java @@ -0,0 +1,199 @@ +package com.boomchess.game.frontend.actor; + +import static com.boomchess.game.BoomChess.calculatePXbyTile; +import static com.boomchess.game.BoomChess.tileSize; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Pixmap; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.Batch; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.ui.Container; +import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable; +import com.boomchess.game.BoomChess; +import com.boomchess.game.backend.Coordinates; + +public class HealthNumber { + /* + * HealthNumber.java is the object for the health numbers in the game Boom Chess. + * They are displayed as part of + */ + + + public static Container giveContainer(int standardHealth, int currentHealth) { + /* + * This function creates container that holds the health number that is displayed + */ + + Container
container = new Container
(); + container.setSize(tileSize, tileSize/2); + + Table table = new Table(); + // put the int into two digits + int firstDigit = currentHealth / 10; + int secondDigit = currentHealth % 10; + + // colour selector based on ratio of standardHealth to currentHealth + float ratio = (float) currentHealth / standardHealth; + + Color healthColor; + Image digitFirst; + Image digitSecond; + switch(ratio < 0.25 ? 0 : ratio < 0.5 ? 1 : ratio < 0.75 ? 2 : 3){ + case 0: + // RED + digitFirst = new Image(getTexture(firstDigit, "red")); + digitSecond = new Image(getTexture(secondDigit, "red")); + break; + case 1: + // ORANGE + digitFirst = new Image(getTexture(firstDigit, "orange")); + digitSecond = new Image(getTexture(secondDigit, "orange")); + break; + case 2: + // YELLOW + digitFirst = new Image(getTexture(firstDigit, "yellow")); + digitSecond = new Image(getTexture(secondDigit, "yellow")); + break; + default: + // GREEN + digitFirst = new Image(getTexture(firstDigit, "green")); + digitSecond = new Image(getTexture(secondDigit, "green")); + break; + } + + // health is two digits next to each other + digitFirst.setSize(tileSize / 2, tileSize / 2); + table.add(digitFirst); + digitSecond.setSize(tileSize / 2, tileSize / 2); + table.add(digitSecond); + table.row(); + + + container.setActor(table); + + return container; + } + + private static Texture getTexture(int health, String color) { + /* + * This function returns the texture of the number that is displayed + */ + switch (health) { + case 1: + switch(color){ + case "red": + return BoomChess.redOne; + case "orange": + return BoomChess.orangeOne; + case "yellow": + return BoomChess.yellowOne; + default: + return BoomChess.greenOne; + } + case 2: + switch(color){ + case "red": + return BoomChess.redTwo; + case "orange": + return BoomChess.orangeTwo; + case "yellow": + return BoomChess.yellowTwo; + default: + return BoomChess.greenTwo; + } + case 3: + switch(color){ + case "red": + return BoomChess.redThree; + case "orange": + return BoomChess.orangeThree; + case "yellow": + return BoomChess.yellowThree; + default: + return BoomChess.greenThree; + } + case 4: + switch(color){ + case "red": + return BoomChess.redFour; + case "orange": + return BoomChess.orangeFour; + case "yellow": + return BoomChess.yellowFour; + default: + return BoomChess.greenFour; + } + case 5: + switch(color){ + case "red": + return BoomChess.redFive; + case "orange": + return BoomChess.orangeFive; + case "yellow": + return BoomChess.yellowFive; + default: + return BoomChess.greenFive; + } + case 6: + switch(color){ + case "red": + return BoomChess.redSix; + case "orange": + return BoomChess.orangeSix; + case "yellow": + return BoomChess.yellowSix; + default: + return BoomChess.greenSix; + } + case 7: + switch(color){ + case "red": + return BoomChess.redSeven; + case "orange": + return BoomChess.orangeSeven; + case "yellow": + return BoomChess.yellowSeven; + default: + return BoomChess.greenSeven; + } + case 8: + switch(color){ + case "red": + return BoomChess.redEight; + case "orange": + return BoomChess.orangeEight; + case "yellow": + return BoomChess.yellowEight; + default: + return BoomChess.greenEight; + } + case 9: + switch(color){ + case "red": + return BoomChess.redNine; + case "orange": + return BoomChess.orangeNine; + case "yellow": + return BoomChess.yellowNine; + default: + return BoomChess.greenNine; + } + default: + switch(color){ + case "red": + return BoomChess.redZero; + case "orange": + return BoomChess.orangeZero; + case "yellow": + return BoomChess.yellowZero; + default: + return BoomChess.greenZero; + } + } + } +} \ No newline at end of file diff --git a/core/src/com/boomchess/game/frontend/stage/GameStage.java b/core/src/com/boomchess/game/frontend/stage/GameStage.java index 58cd84b..a84228c 100644 --- a/core/src/com/boomchess/game/frontend/stage/GameStage.java +++ b/core/src/com/boomchess/game/frontend/stage/GameStage.java @@ -40,6 +40,7 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.Touchable; +import com.badlogic.gdx.scenes.scene2d.ui.Container; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.ProgressBar; import com.badlogic.gdx.scenes.scene2d.ui.Stack; @@ -59,6 +60,7 @@ import com.boomchess.game.backend.subsoldier.Hill; import com.boomchess.game.frontend.actor.AttackSequence; import com.boomchess.game.frontend.actor.DamageNumber; +import com.boomchess.game.frontend.actor.HealthNumber; import com.boomchess.game.frontend.actor.SpecialDamageIndicator; import com.boomchess.game.frontend.actor.WrongMoveIndicator; import com.boomchess.game.frontend.interfaces.takeIntervalSelfie; @@ -181,19 +183,14 @@ public static Stage createGameStage(final boolean isBotMatch) { if (!(health == -1)) { // tileWidget is only move able if a Piece is on it, meaning it has health tileWidget.setTouchable(Touchable.enabled); - // draw the health bar - final ProgressBar healthBar = new ProgressBar(0f, 60f, 1f, false, - progressBarSkin); - healthBar.setSize(tileSize/3200, tileSize/800); - - healthBar.setValue(health); - tileWidget.add(healthBar); - - // hide the health bar by default - healthBar.setVisible(false); - + // draw the health number if showHealth is true if(showHealth) { - healthBar.setVisible(true); + Image blackCircle = new Image(BoomChess.blackCircle); + blackCircle.setSize(tileSize, tileSize); + tileWidget.add(blackCircle); + Container
healthContainer = + HealthNumber.giveContainer(soldier.getStandardHealth(), health); + tileWidget.add(healthContainer); } }