From 501a1b1e26e80bb47dc2aa90f62df0b2139a1d55 Mon Sep 17 00:00:00 2001 From: EmaMaker Date: Mon, 18 May 2020 17:22:13 +0200 Subject: [PATCH] Local game: Introducing PowerUps. Same movement type for keyboard and mobile players --- android/assets/data/Untitled.xcf | Bin 0 -> 58123 bytes android/assets/data/powerups/Untitled.xcf | Bin 0 -> 2215 bytes .../assets/data/powerups/ball_and_chain.png | Bin 0 -> 2070 bytes .../assets/data/powerups/ball_and_chain.xcf | Bin 0 -> 3763 bytes android/assets/data/powerups/bomb.png | Bin 0 -> 2075 bytes android/assets/data/powerups/bomb.xcf | Bin 0 -> 2741 bytes android/assets/data/powerups/feather.png | Bin 0 -> 1507 bytes android/assets/data/powerups/slug.png | Bin 0 -> 1652 bytes android/assets/data/powerups/slug.xcf | Bin 0 -> 2587 bytes .../assets/data/touchscreen_controller.png | Bin 0 -> 29114 bytes android/build.gradle | 9 +- build.gradle | 27 - core/assets/data/powerups/Untitled.xcf | Bin 0 -> 2215 bytes core/assets/data/powerups/ball_and_chain.png | Bin 0 -> 2070 bytes core/assets/data/powerups/ball_and_chain.xcf | Bin 0 -> 3763 bytes core/assets/data/powerups/bomb.png | Bin 0 -> 2075 bytes core/assets/data/powerups/bomb.xcf | Bin 0 -> 2741 bytes core/assets/data/powerups/feather.png | Bin 0 -> 1507 bytes core/assets/data/powerups/slug.png | Bin 0 -> 1652 bytes core/assets/data/powerups/slug.xcf | Bin 0 -> 2587 bytes core/build.gradle | 2 +- core/src/com/emamaker/amazeing/AMazeIng.java | 11 +- .../amazeing/manager/GameManager.java | 75 ++- .../amazeing/manager/network/GameClient.java | 21 +- .../emamaker/amazeing/maze/MazeGenerator.java | 23 +- .../amazeing/maze/settings/MazeSetting.java | 9 + .../settings/MazeSettingStartPowerUps.java | 21 + .../amazeing/maze/settings/MazeSettings.java | 53 +- .../emamaker/amazeing/player/MazePlayer.java | 18 + .../amazeing/player/MazePlayerLocal.java | 484 +++++++++--------- .../emamaker/amazeing/player/PlayerUtils.java | 17 + .../amazeing/player/powerups/PowerUp.java | 172 +++++++ .../player/powerups/PowerUpBallAndChain.java | 34 ++ .../amazeing/player/powerups/PowerUpBomb.java | 53 ++ .../player/powerups/PowerUpFeather.java | 24 + .../amazeing/player/powerups/PowerUpSlug.java | 33 ++ .../amazeing/player/powerups/PowerUps.java | 41 ++ .../ui/screens/PlayerChooseScreen.java | 12 +- core/src/shaders/shader.txt | 8 - desktop/assets/data/Untitled.xcf | Bin 0 -> 58123 bytes desktop/assets/data/default.fnt | 101 ++++ desktop/assets/data/powerups/Untitled.xcf | Bin 0 -> 2215 bytes .../assets/data/powerups/ball_and_chain.png | Bin 0 -> 2070 bytes .../assets/data/powerups/ball_and_chain.xcf | Bin 0 -> 3763 bytes desktop/assets/data/powerups/bomb.png | Bin 0 -> 2075 bytes desktop/assets/data/powerups/bomb.xcf | Bin 0 -> 2741 bytes desktop/assets/data/powerups/feather.png | Bin 0 -> 1507 bytes desktop/assets/data/powerups/slug.png | Bin 0 -> 1652 bytes desktop/assets/data/powerups/slug.xcf | Bin 0 -> 2587 bytes .../assets/data/shaders/testshader_frag.glsl | 10 + .../assets/data/shaders/testshader_vert.glsl | 13 + .../assets/data/textures}/badlogic.jpg | Bin desktop/assets/data/textures/dirt.png | Bin 0 -> 8453 bytes desktop/assets/data/textures/grass_side.png | Bin 0 -> 9693 bytes desktop/assets/data/textures/grass_top.png | Bin 0 -> 8636 bytes desktop/assets/data/textures/leaves.jpg | Bin 0 -> 23614 bytes desktop/assets/data/textures/stone.jpg | Bin 0 -> 7504 bytes .../assets/data/textures/texture_atlas.png | Bin 0 -> 60803 bytes .../assets/data/textures/wood_bottom_top.png | Bin 0 -> 10998 bytes desktop/assets/data/textures/wood_side.png | Bin 0 -> 10357 bytes .../assets/data/touchscreen_controller.png | Bin 0 -> 29114 bytes desktop/assets/data/uiskin.atlas | 200 ++++++++ desktop/assets/data/uiskin.json | 70 +++ desktop/assets/data/uiskin.png | Bin 0 -> 28299 bytes .../com/emamaker/amazeing/IOSLauncher.java | 4 +- 65 files changed, 1207 insertions(+), 338 deletions(-) create mode 100644 android/assets/data/Untitled.xcf create mode 100644 android/assets/data/powerups/Untitled.xcf create mode 100644 android/assets/data/powerups/ball_and_chain.png create mode 100644 android/assets/data/powerups/ball_and_chain.xcf create mode 100644 android/assets/data/powerups/bomb.png create mode 100644 android/assets/data/powerups/bomb.xcf create mode 100644 android/assets/data/powerups/feather.png create mode 100644 android/assets/data/powerups/slug.png create mode 100644 android/assets/data/powerups/slug.xcf create mode 100644 android/assets/data/touchscreen_controller.png create mode 100644 core/assets/data/powerups/Untitled.xcf create mode 100644 core/assets/data/powerups/ball_and_chain.png create mode 100644 core/assets/data/powerups/ball_and_chain.xcf create mode 100644 core/assets/data/powerups/bomb.png create mode 100644 core/assets/data/powerups/bomb.xcf create mode 100644 core/assets/data/powerups/feather.png create mode 100644 core/assets/data/powerups/slug.png create mode 100644 core/assets/data/powerups/slug.xcf create mode 100644 core/src/com/emamaker/amazeing/maze/settings/MazeSettingStartPowerUps.java create mode 100644 core/src/com/emamaker/amazeing/player/powerups/PowerUp.java create mode 100644 core/src/com/emamaker/amazeing/player/powerups/PowerUpBallAndChain.java create mode 100644 core/src/com/emamaker/amazeing/player/powerups/PowerUpBomb.java create mode 100644 core/src/com/emamaker/amazeing/player/powerups/PowerUpFeather.java create mode 100644 core/src/com/emamaker/amazeing/player/powerups/PowerUpSlug.java create mode 100644 core/src/com/emamaker/amazeing/player/powerups/PowerUps.java delete mode 100755 core/src/shaders/shader.txt create mode 100644 desktop/assets/data/Untitled.xcf create mode 100755 desktop/assets/data/default.fnt create mode 100644 desktop/assets/data/powerups/Untitled.xcf create mode 100644 desktop/assets/data/powerups/ball_and_chain.png create mode 100644 desktop/assets/data/powerups/ball_and_chain.xcf create mode 100644 desktop/assets/data/powerups/bomb.png create mode 100644 desktop/assets/data/powerups/bomb.xcf create mode 100644 desktop/assets/data/powerups/feather.png create mode 100644 desktop/assets/data/powerups/slug.png create mode 100644 desktop/assets/data/powerups/slug.xcf create mode 100644 desktop/assets/data/shaders/testshader_frag.glsl create mode 100644 desktop/assets/data/shaders/testshader_vert.glsl rename {android/assets => desktop/assets/data/textures}/badlogic.jpg (100%) mode change 100644 => 100755 create mode 100755 desktop/assets/data/textures/dirt.png create mode 100755 desktop/assets/data/textures/grass_side.png create mode 100755 desktop/assets/data/textures/grass_top.png create mode 100755 desktop/assets/data/textures/leaves.jpg create mode 100755 desktop/assets/data/textures/stone.jpg create mode 100755 desktop/assets/data/textures/texture_atlas.png create mode 100755 desktop/assets/data/textures/wood_bottom_top.png create mode 100755 desktop/assets/data/textures/wood_side.png create mode 100644 desktop/assets/data/touchscreen_controller.png create mode 100755 desktop/assets/data/uiskin.atlas create mode 100755 desktop/assets/data/uiskin.json create mode 100755 desktop/assets/data/uiskin.png diff --git a/android/assets/data/Untitled.xcf b/android/assets/data/Untitled.xcf new file mode 100644 index 0000000000000000000000000000000000000000..3b98945931b5df21b0775539f0f7748abfc7fb46 GIT binary patch literal 58123 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 literal 0 HcmV?d00001 diff --git a/android/assets/data/powerups/Untitled.xcf b/android/assets/data/powerups/Untitled.xcf new file mode 100644 index 0000000000000000000000000000000000000000..45f3b4470ac217fea462a0b9941b41c2f48c7c9f GIT binary patch literal 2215 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 Az5oCK literal 0 HcmV?d00001 diff --git a/android/assets/data/powerups/ball_and_chain.xcf b/android/assets/data/powerups/ball_and_chain.xcf new file mode 100644 index 0000000000000000000000000000000000000000..435bd21d5b9c4e27343037fa39c7596f188b5c61 GIT binary patch literal 3763 zcmeH~Yit}>6@c%~u6Mn!dC$(iXJ%(+pWc`4kd%g`I3-c4WD-hXqtFH%$99}1cFCg; zkV+&3h?fvj6e3lTiV%oMluE6jKTrrlsu~~?u>>&^lIvEqY1rB%m;}f1?%~|E4UQCv z3ZeeuuFlN4=bZbT^WB*p9XtA@{>;#b{#31ACs_0qq52sV0mbFQi-gj>1x-}2$S59^ zAWCFKr*R6(JW6;JyDkq+96dTbegf-+I>jx=h6hg!AJm^7J8?+gwteSr>ft+~V@C%^ zhs&eK#tu>&js9`|_=#ta4C}`yj*J~F1o9)JLlZ|Pj_LW%t$b|sz@T31{OSdCAGnXZ zu6KUa{mk(v2ZzSSNA-FQYtPa4Iig1CPqe%51-IG@oV&D_1<7Q z=QYK3cui$hwNTMf=-PqY$hPyLUlT(u(X#08E)TOwI4})CLHM1}YV446z7aG0TamPIvb7R@L=ZJw|6Ws~?A-EfLrn4G}{H#cdbAWM>< z+V#G?9`O^Nr2DFc7(RG_DO?_W`;mGy5=%ry9L?^pmJA6K&863>1tUt}t(lodv-!h^ z`!z*YBB_`f({in4{&Z{$ud*XsG`K9f>P?OS4ydPg3Z->i*hFh*LM2Bf^9LzDRN1bL_X**)T=!` zsdUaO_SExgveCTWCQW7C@svW7wu?rxlS62Kh`WpVW;WE)-DBLIY#2XECN` zr860fk!3{|1T~&WTRrR4u#_%tX#iY**T9$!70WQpOk9y85i#szl)SZWTOy(tw>B_S zYYeZE0Hi4HHsT|xEmq(OZ9_Dhs2%t*pu_A)>-?+&I6 zO&dm{oKc?(iSf~Erv~8ecn~WSW67q0k37I&r+|FArDX~tbGUc4|p3D>SoPlE;?4|u2xcNUMHxz~R2 zOei1sOEN>Ir!@{3+;tDS-8h-KzyA7n&jtMcuq5N*$#FqVqeS9lJ7Y2Mj)_oybub;~ zC7u;SUJu7=T1e*bDDK3(cmbg_fBVXwotr(pfZ!%0VGo{>oN6W64wQIqOe2&gPih(w z1Wrkqd0j!0IIdE+qIl*mLpe>)nDq&k6?mSNtXe&rl6-_C$$BNHBEvwg;u7K1ma;5G zRGH%h)#|MjG_=Kx}2`X6j>BiIV=`x)t-Dj5)Ika zT2Ac5;M%_2Zy7q1LMRoU=V2qW)n39e;uNiSc5Ct}@#Nr7fSCN8T!rtfrSXK&S`U+Yqt)(KO zAW2-H%OzQQ?V+fYvNt=J9wmJ6rCc_Xj;Sgi2=gJomyPQ723^<6j)PE^3%02xR9uTF z27_|S{?Nm22cazX7A-B2ib}i`;nh@j-L`!=7(!_xl)H99*~n$IWK5056RMW&-TfFs ziLTjQ&MwC(ZYxCNDZ|R+2#`P^xC|w>z86XsK_LMOC5vQW z;}s}zA~(*xdS576ll||ZB!T}7<+)csFeup%5K8lXK#4K$14@MH|4{y~p!_2F25DWq zwNE3hzd=hQu*g7~EaCato5q*K;`~`crp`w3b%t*$So+7?cR(czKwp`#uk8jual7Wb zd_J$w=fTgy&MR|~^tRygDL0USy%w9t?-E zvhk%h2kjTisJkDXrux+OFlluSF7nWB?GKZ-_pk^sjtVm*Li=e~h_pP9&!hMDC`(#f zFVi-^|2Rw9`7>xdzYdL|PtM^8w>}r)NQ-;^MhIHBe^9_Vx=TO$djR+0r&~e-);4?> zKfV`ko_|!q#Y;i_Kgp20)h}H9(=7(>EX=(2m4{?EM`m3N{i7M&eDeDjU;ow1U*91U Vw?J;X+#Uwa9!})sTp<)D{{%_r4!8gS literal 0 HcmV?d00001 diff --git a/android/assets/data/powerups/bomb.png b/android/assets/data/powerups/bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..3993ae938da202fa7bcdc262eedcbac0dfd18331 GIT binary patch literal 2075 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 literal 0 HcmV?d00001 diff --git a/android/assets/data/powerups/bomb.xcf b/android/assets/data/powerups/bomb.xcf new file mode 100644 index 0000000000000000000000000000000000000000..91502336fa63330bce2ba1f19194219581aef969 GIT binary patch literal 2741 zcmeHIU2G#)6}~gJW5++^pRql5{5Q_Eoj;P;yNH?sT`4QEsxZ_N=a*X3OKa^# zwsG_?#@9Dqx!y9@SFg7hCxYYGmKIj8udbQn{bqV?>4kZ--hUbsaKG?B+zqq;u>0lp zm*yARD@$ghj@~Pe_0BreH&)skW_xAf#nw8HSiN>_y|rQX;|KUDeLR@gJW!PH4Rp?_ z3BusLh34iLzQ44#dSj)(T@@xSLja#D0cGZweuVn;l-bThhXLkXMuBslAK<|OZVvF! z01prF$N-Om^IJVHeh{96^H2p5Wr5-Z*XhwTYT>wsv(3{JfYT z3>5X}r>zi+L~fB(fZQx8{Wd_4_U?7=byDanHsIX=9%*SWLl3*XsX$;HyyXeN%$`^f7aypOS) zUy1`G$)uh&s%A{Z?!E5Au4~(+gbt|sVIn_sv6jbaddTm(_EQ;yk<03Ox_EJRB8xNk z(2)B8i%HsFFp;X1&E(Dc>_j;u`b+h?54!fWEHl!2+9;+n(--QK`4oG7?*6_#RgsKh z+0YZwp{WZ~Glh~($lC4NmGKH=td`gHs5Vx=Fqtgb9xPMoy0x*I4OA+HOw==!_*`S$ z$lC$xcK=o`RBgblmEw9ls+X(j%9tIb59`vDjA|~GHuOlqKUR5K#rgT^V6s{oVPq4b zWHcN!>cO)DtocnQ5d5RjNWIRVegGu=0YiDMZrGH9U$KCPg0M0zEVL zl`pC|Z4y!XSdy5So4aYxJ+phabGM_yh8(hYbI!MW(h=x#>ce0DZns1G`@6eQI)J80 zN}}CeB8zR71?@=I4uULwc>nd+!=YfJuO0aTiMzYdjyHH`b2+2w>2NZN%M9(vgWqH9 z=F=LGiN|AxQORqp9aSprhb#M*m5aszHFg-y&NM0++))oEQm*c|f83VVg=CUpq+&5W z-dsk(<_dHzc&fTA&QAZbgo=s zgDQ@jFnQGo272(J@`#5`qF>!RI=Xx7k{=n>9ejdd?tSNefO@YPKJn;VU1!_r+XDB4 z)Y~?^;^dv~4sM3y6}|MILqxA(fYZfqxCs(@K0~pcIFirSXNL-c^p^M! Dhb9=k literal 0 HcmV?d00001 diff --git a/android/assets/data/powerups/feather.png b/android/assets/data/powerups/feather.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe93e38cf3781829496994dc35aadf31502da27 GIT binary patch literal 1507 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 literal 0 HcmV?d00001 diff --git a/android/assets/data/touchscreen_controller.png b/android/assets/data/touchscreen_controller.png new file mode 100644 index 0000000000000000000000000000000000000000..74e0a3b1ec42c0d8e3be5729fa6140960b0f05ef GIT binary patch literal 29114 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 literal 0 HcmV?d00001 diff --git a/android/build.gradle b/android/build.gradle index ee53eec..fc02571 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -90,14 +90,7 @@ task run(type: Exec) { } dependencies { - implementation files('/home/emamaker/github/amazeing/gdx/lib/kryonet-2.21-all.jar') -<<<<<<< HEAD + implementation files('/srv/nfs/home/github/amazeing/gdx/lib/kryonet-2.21-all.jar') } - -======= - implementation files('/home/emamaker/github/amazeing/gdx/lib/kryonet-2.21-all.jar') -} - ->>>>>>> 98d66880a8d39751df9c3f47d8728c913b0851c6 eclipse.project.name = appName + "-android" diff --git a/build.gradle b/build.gradle index 1d5eb33..33a1ce2 100644 --- a/build.gradle +++ b/build.gradle @@ -49,18 +49,11 @@ project(":desktop") { api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" api "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-desktop" -<<<<<<< HEAD api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" api "com.badlogicgames.gdx:gdx-tools:$gdxVersion" api "com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion" api "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop" api "de.tomgrill.gdxdialogs:gdx-dialogs-desktop:1.2.5" -======= - api "com.badlogicgames.gdx:gdx-tools:$gdxVersion" - api "com.badlogicgames.gdx:gdx-controllers-desktop:$gdxVersion" - api "com.badlogicgames.gdx:gdx-controllers-platform:$gdxVersion:natives-desktop" - api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" ->>>>>>> 98d66880a8d39751df9c3f47d8728c913b0851c6 } } @@ -84,27 +77,17 @@ project(":android") { natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-arm64-v8a" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86_64" -<<<<<<< HEAD -======= - api "com.badlogicgames.ashley:ashley:$ashleyVersion" - api "com.badlogicgames.gdx:gdx-ai:$aiVersion" - api "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" - api "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion" ->>>>>>> 98d66880a8d39751df9c3f47d8728c913b0851c6 api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a" natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64" -<<<<<<< HEAD api "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" api "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion" api "com.badlogicgames.gdx:gdx-ai:$aiVersion" api "com.badlogicgames.ashley:ashley:$ashleyVersion" api "de.tomgrill.gdxdialogs:gdx-dialogs-android:1.2.5" -======= ->>>>>>> 98d66880a8d39751df9c3f47d8728c913b0851c6 } } @@ -122,10 +105,7 @@ project(":ios") { api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" api "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios" api "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios" -<<<<<<< HEAD api "de.tomgrill.gdxdialogs:gdx-dialogs-ios:1.2.5" -======= ->>>>>>> 98d66880a8d39751df9c3f47d8728c913b0851c6 } } @@ -137,19 +117,12 @@ project(":core") { dependencies { api "com.badlogicgames.gdx:gdx:$gdxVersion" api "com.badlogicgames.gdx:gdx-bullet:$gdxVersion" -<<<<<<< HEAD api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" api "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" api "com.badlogicgames.gdx:gdx-ai:$aiVersion" api "com.badlogicgames.ashley:ashley:$ashleyVersion" api "net.dermetfan.libgdx-utils:libgdx-utils:0.13.4" api "de.tomgrill.gdxdialogs:gdx-dialogs-core:1.2.5" -======= - api "com.badlogicgames.ashley:ashley:$ashleyVersion" - api "com.badlogicgames.gdx:gdx-ai:$aiVersion" - api "com.badlogicgames.gdx:gdx-controllers:$gdxVersion" - api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" ->>>>>>> 98d66880a8d39751df9c3f47d8728c913b0851c6 } } diff --git a/core/assets/data/powerups/Untitled.xcf b/core/assets/data/powerups/Untitled.xcf new file mode 100644 index 0000000000000000000000000000000000000000..45f3b4470ac217fea462a0b9941b41c2f48c7c9f GIT binary patch literal 2215 zcmZvaT}&KR6vyu!Rz8-ZzyexQbo@$gqa=V&_ld+l7}IQ)hw3|BmhD>DEniyVgC?t+ z@TLtRs7a$yOE5l=Nf1(%WLYU~Etj;U7Of%rpoSI*?CxA>-JR>Xv$J+)hr9XD{hxEs zIhi}Z4M+OVspo^e>f3GY?Fg1?N%{#;9SCE1_&}8>ASDH>0pzjNWbLx95tISdgkf}R zFxKB6iVj1Jbs7HM#GJHmT?R9^bJgGHHBmLdsP-}QF(j#-S`dczIJlYph zhhlw^p5tE98xF?$VuLC%x7NY%>29^n{Iws4=t?s=Op{xgbqlC`juk-~01i=V=JU*+RN&ScMYF)z?FM4(p) z<}D;Qz&TO0Mk1I3iJZ2xqdiFu1_?42-i>RiZy*I3R!bD7>p!l}r^d$Sep=>b>8G85ZS64Ur?fEqb zap!*M!?948J`e~rL4>>VBru?WS2_jp1e!@%poQSTDWaej5MZN#jRH2Bi*il@8wG5T zC}5)pQEFi;cmF>#}@Vbn;-&g)E`yA12*dMH`6kI3&s9Z6tIB+ z8wP9`uwjV}12zoUAW^`E52Dz@R>(iXhO-RYutAFr8#WkrV8bQY%-Dtvmtup0GF}`>qdWc65{rBPtqDl@J>~WK<)sfNch1*sxI{aw{Du zUyqE@9n%Y=4&?*lfqDMho~#zpN|BpF=*@a09##sBjE@A^yIvS89?C+m5chrZO{EX>4Tx04R}tkv&MmKpe$iTZ^I<5j%)DWT*~eL9B?QR-p(LLaorMgUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwCr2km7b)?7NufoI2gm(*ckglc4)E8@Of@?u09CV$ zR3a{9va3SpD}v}p4`LXTn5oZ+ViKO?>mEM7-bHzq_qjhuuaYwv;1h^vnQmCb8^qI_ zmd<&fILwNYLVQj`&;VI;7KC5R9pqlyyBun?tHBgI6D_TwJ@A;&M0OD0zd zj2sK7K!xP^!T;cQw`M*z=_ZBZK=8%3KSqGgU7%63?eAmTZkzytXW&X}`73o`=9BbV zON$%&ouk{0i?xpyJl_FegFUf24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jm423;+~zgkh%u000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}000H;NklPR^kWHMG+De?SiUOV1v>Mfkhk@bzzkN5}`^PDM6Da zsaE1fWNk;@~rJABsPDp!ic;?e?cwm-n)GrWBJ9KbBGgz&-%e z9}M0a0lQSm^T+Oq1|B|ggaP16t3?1%pPgl;$0Wc4=m2N}FydYmztU>a%^Nq6Da8O_ z`+WfT0RRS&0(by``Aiq=bvpFkrAx3yfz{Pj{QTvY)#0Tj(cRreXM3Bgc}^h0R;LqU zj1fQ_188@<=K{xZ_uUje*zdlwKLQcCGso_Cco%@E^HuC`js3_NI* z$^i%l0+@db;Ew>-YjbnE1_0P13 z4=!I`Svz;`kd*QfC1piQX+j8a&Os@KN~Q9{vMj$9V|*9DZHpfO@%+K-TL47nxVf=` zlP6C;TNcHsz1`ifZ{EC#tXc&TK}rb*5QRXR=TJ&5_J|hygTax}FOFSlwUXN0TrrJi zZbA6PTCH-m+dcN=6Hol2v%THC)@otCULS&s5!x7NW00gN60K2Ki(aqCyL)@ox7Gpp zQ*CbU*qDtw0k|ax9y@yUO8{Q`cysfRwHB2;2lG%%%nT_6sxvc~nVEsn8X?A^Vu%o9 zls<%q(liy_otJ5vMr*^4gz(B8I?Rok|dBq z05PJp7JGYpAR;KOk!2Zbv$JT_>uA>Nq@?@?GcVtXfr$vKc}}JGi_ZI_QYoZKg3>uS z=O(KI0HubX6h(m$BTSM&DFtH;1QCRkAR^3!@U?-pOSUX8PQ}1hyDee}b3TM6Ap{v? zV6?`#4W)DN-h)RiD6Bp2R!U7) z+_x6qIaq5E0XXkrokKImp)F$^f*}H!p_CF?meuYAV8X!nS5|!Kec?iY6aqv9Jz_v9 zH4!5bfdB|0kQjpy0zwFoN%f;BE|@#b;isz6@a(b*M%S|iD-Z1D=_nLWif&P z=yCt8MSn1WwHBRr8?G#eRwV+D!X+{fd`M`{7rGhL?A%qxct$#N+JNxR|JMXmaiU9yH#_TI8Us6*3L2KO` zyMRWsK#ZL*asdeeqcsv^ptZI}>+_9z{ngoO^}}hV;Vl6Ee(_?cWZC;#>z9b=*9?3@ z01{)6Wf{^mo!C?=1*0|cY86?Q?PghawqC3Ks#&l9zcj^p^$i4zoK z#Bbhwb7Gq>Kl|T+&LVN=he$ z=nA6ulO*}`Vzasa`?a-Cesub@eC3Td!nB*%Po>nUl@;O`#W+g_*7DiaRR(~czVL#& zxv^1UW+|l%&N*$1q7j*eR_epo&Yao*Z+6lD22JkDZLm4DFaQ7m07*qoM6N<$g7G4@ Az5oCK literal 0 HcmV?d00001 diff --git a/core/assets/data/powerups/ball_and_chain.xcf b/core/assets/data/powerups/ball_and_chain.xcf new file mode 100644 index 0000000000000000000000000000000000000000..435bd21d5b9c4e27343037fa39c7596f188b5c61 GIT binary patch literal 3763 zcmeH~Yit}>6@c%~u6Mn!dC$(iXJ%(+pWc`4kd%g`I3-c4WD-hXqtFH%$99}1cFCg; zkV+&3h?fvj6e3lTiV%oMluE6jKTrrlsu~~?u>>&^lIvEqY1rB%m;}f1?%~|E4UQCv z3ZeeuuFlN4=bZbT^WB*p9XtA@{>;#b{#31ACs_0qq52sV0mbFQi-gj>1x-}2$S59^ zAWCFKr*R6(JW6;JyDkq+96dTbegf-+I>jx=h6hg!AJm^7J8?+gwteSr>ft+~V@C%^ zhs&eK#tu>&js9`|_=#ta4C}`yj*J~F1o9)JLlZ|Pj_LW%t$b|sz@T31{OSdCAGnXZ zu6KUa{mk(v2ZzSSNA-FQYtPa4Iig1CPqe%51-IG@oV&D_1<7Q z=QYK3cui$hwNTMf=-PqY$hPyLUlT(u(X#08E)TOwI4})CLHM1}YV446z7aG0TamPIvb7R@L=ZJw|6Ws~?A-EfLrn4G}{H#cdbAWM>< z+V#G?9`O^Nr2DFc7(RG_DO?_W`;mGy5=%ry9L?^pmJA6K&863>1tUt}t(lodv-!h^ z`!z*YBB_`f({in4{&Z{$ud*XsG`K9f>P?OS4ydPg3Z->i*hFh*LM2Bf^9LzDRN1bL_X**)T=!` zsdUaO_SExgveCTWCQW7C@svW7wu?rxlS62Kh`WpVW;WE)-DBLIY#2XECN` zr860fk!3{|1T~&WTRrR4u#_%tX#iY**T9$!70WQpOk9y85i#szl)SZWTOy(tw>B_S zYYeZE0Hi4HHsT|xEmq(OZ9_Dhs2%t*pu_A)>-?+&I6 zO&dm{oKc?(iSf~Erv~8ecn~WSW67q0k37I&r+|FArDX~tbGUc4|p3D>SoPlE;?4|u2xcNUMHxz~R2 zOei1sOEN>Ir!@{3+;tDS-8h-KzyA7n&jtMcuq5N*$#FqVqeS9lJ7Y2Mj)_oybub;~ zC7u;SUJu7=T1e*bDDK3(cmbg_fBVXwotr(pfZ!%0VGo{>oN6W64wQIqOe2&gPih(w z1Wrkqd0j!0IIdE+qIl*mLpe>)nDq&k6?mSNtXe&rl6-_C$$BNHBEvwg;u7K1ma;5G zRGH%h)#|MjG_=Kx}2`X6j>BiIV=`x)t-Dj5)Ika zT2Ac5;M%_2Zy7q1LMRoU=V2qW)n39e;uNiSc5Ct}@#Nr7fSCN8T!rtfrSXK&S`U+Yqt)(KO zAW2-H%OzQQ?V+fYvNt=J9wmJ6rCc_Xj;Sgi2=gJomyPQ723^<6j)PE^3%02xR9uTF z27_|S{?Nm22cazX7A-B2ib}i`;nh@j-L`!=7(!_xl)H99*~n$IWK5056RMW&-TfFs ziLTjQ&MwC(ZYxCNDZ|R+2#`P^xC|w>z86XsK_LMOC5vQW z;}s}zA~(*xdS576ll||ZB!T}7<+)csFeup%5K8lXK#4K$14@MH|4{y~p!_2F25DWq zwNE3hzd=hQu*g7~EaCato5q*K;`~`crp`w3b%t*$So+7?cR(czKwp`#uk8jual7Wb zd_J$w=fTgy&MR|~^tRygDL0USy%w9t?-E zvhk%h2kjTisJkDXrux+OFlluSF7nWB?GKZ-_pk^sjtVm*Li=e~h_pP9&!hMDC`(#f zFVi-^|2Rw9`7>xdzYdL|PtM^8w>}r)NQ-;^MhIHBe^9_Vx=TO$djR+0r&~e-);4?> zKfV`ko_|!q#Y;i_Kgp20)h}H9(=7(>EX=(2m4{?EM`m3N{i7M&eDeDjU;ow1U*91U Vw?J;X+#Uwa9!})sTp<)D{{%_r4!8gS literal 0 HcmV?d00001 diff --git a/core/assets/data/powerups/bomb.png b/core/assets/data/powerups/bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..3993ae938da202fa7bcdc262eedcbac0dfd18331 GIT binary patch literal 2075 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 literal 0 HcmV?d00001 diff --git a/core/assets/data/powerups/bomb.xcf b/core/assets/data/powerups/bomb.xcf new file mode 100644 index 0000000000000000000000000000000000000000..91502336fa63330bce2ba1f19194219581aef969 GIT binary patch literal 2741 zcmeHIU2G#)6}~gJW5++^pRql5{5Q_Eoj;P;yNH?sT`4QEsxZ_N=a*X3OKa^# zwsG_?#@9Dqx!y9@SFg7hCxYYGmKIj8udbQn{bqV?>4kZ--hUbsaKG?B+zqq;u>0lp zm*yARD@$ghj@~Pe_0BreH&)skW_xAf#nw8HSiN>_y|rQX;|KUDeLR@gJW!PH4Rp?_ z3BusLh34iLzQ44#dSj)(T@@xSLja#D0cGZweuVn;l-bThhXLkXMuBslAK<|OZVvF! z01prF$N-Om^IJVHeh{96^H2p5Wr5-Z*XhwTYT>wsv(3{JfYT z3>5X}r>zi+L~fB(fZQx8{Wd_4_U?7=byDanHsIX=9%*SWLl3*XsX$;HyyXeN%$`^f7aypOS) zUy1`G$)uh&s%A{Z?!E5Au4~(+gbt|sVIn_sv6jbaddTm(_EQ;yk<03Ox_EJRB8xNk z(2)B8i%HsFFp;X1&E(Dc>_j;u`b+h?54!fWEHl!2+9;+n(--QK`4oG7?*6_#RgsKh z+0YZwp{WZ~Glh~($lC4NmGKH=td`gHs5Vx=Fqtgb9xPMoy0x*I4OA+HOw==!_*`S$ z$lC$xcK=o`RBgblmEw9ls+X(j%9tIb59`vDjA|~GHuOlqKUR5K#rgT^V6s{oVPq4b zWHcN!>cO)DtocnQ5d5RjNWIRVegGu=0YiDMZrGH9U$KCPg0M0zEVL zl`pC|Z4y!XSdy5So4aYxJ+phabGM_yh8(hYbI!MW(h=x#>ce0DZns1G`@6eQI)J80 zN}}CeB8zR71?@=I4uULwc>nd+!=YfJuO0aTiMzYdjyHH`b2+2w>2NZN%M9(vgWqH9 z=F=LGiN|AxQORqp9aSprhb#M*m5aszHFg-y&NM0++))oEQm*c|f83VVg=CUpq+&5W z-dsk(<_dHzc&fTA&QAZbgo=s zgDQ@jFnQGo272(J@`#5`qF>!RI=Xx7k{=n>9ejdd?tSNefO@YPKJn;VU1!_r+XDB4 z)Y~?^;^dv~4sM3y6}|MILqxA(fYZfqxCs(@K0~pcIFirSXNL-c^p^M! Dhb9=k literal 0 HcmV?d00001 diff --git a/core/assets/data/powerups/feather.png b/core/assets/data/powerups/feather.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe93e38cf3781829496994dc35aadf31502da27 GIT binary patch literal 1507 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 literal 0 HcmV?d00001 diff --git a/core/build.gradle b/core/build.gradle index 4b6bf4f..7ee84c7 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -2,7 +2,7 @@ apply plugin: "java" sourceCompatibility = 1.7 dependencies { - implementation files('/home/emamaker/github/amazeing/gdx/lib/kryonet-2.21-all.jar') + implementation files('/srv/nfs/home/github/amazeing/gdx/lib/kryonet-2.21-all.jar') } [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' diff --git a/core/src/com/emamaker/amazeing/AMazeIng.java b/core/src/com/emamaker/amazeing/AMazeIng.java index f5b7a7b..4811803 100755 --- a/core/src/com/emamaker/amazeing/AMazeIng.java +++ b/core/src/com/emamaker/amazeing/AMazeIng.java @@ -12,6 +12,7 @@ import com.emamaker.amazeing.manager.GameType; import com.emamaker.amazeing.manager.network.GameClient; import com.emamaker.amazeing.manager.network.GameServer; import com.emamaker.amazeing.maze.settings.MazeSettings; +import com.emamaker.amazeing.player.powerups.PowerUps; import com.emamaker.amazeing.ui.UIManager; import com.emamaker.voxelengine.VoxelWorld; @@ -24,7 +25,7 @@ public class AMazeIng extends Game { Random rand = new Random(); public UIManager uiManager; - public GameManager gameManager; + public GameManager gameManager, currentGameManager; public MazeSettings settings; public InputMultiplexer multiplexer = new InputMultiplexer(); @@ -64,6 +65,7 @@ public class AMazeIng extends Game { generated = false; setupGUI(); setupGameManager(); + setupPowerUps(); } public void setupGUI() { @@ -80,8 +82,11 @@ public class AMazeIng extends Game { server = new GameServer(this); client = new GameClient(this); } - - float delta; + + public void setupPowerUps() { + System.out.println("Setting up PowerUps"); + new PowerUps(); + } @Override public void render() { diff --git a/core/src/com/emamaker/amazeing/manager/GameManager.java b/core/src/com/emamaker/amazeing/manager/GameManager.java index 4373eb8..a6dcd61 100644 --- a/core/src/com/emamaker/amazeing/manager/GameManager.java +++ b/core/src/com/emamaker/amazeing/manager/GameManager.java @@ -14,6 +14,8 @@ import com.emamaker.amazeing.maze.MazeGenerator; import com.emamaker.amazeing.maze.settings.MazeSettings; import com.emamaker.amazeing.player.MazePlayer; import com.emamaker.amazeing.player.MazePlayerLocal; +import com.emamaker.amazeing.player.powerups.PowerUp; +import com.emamaker.amazeing.player.powerups.PowerUps; import com.emamaker.amazeing.ui.screens.PreGameScreen; import com.emamaker.voxelengine.block.CellId; import com.emamaker.voxelengine.player.Player; @@ -34,6 +36,10 @@ public class GameManager { GameType type = GameType.LOCAL; public ArrayList players = new ArrayList(); + public ArrayList powerups = new ArrayList(); + ArrayList toDelete = new ArrayList(); + + PowerUp pup; public GameManager(Game main_, GameType t) { main = (AMazeIng) main_; @@ -46,8 +52,6 @@ public class GameManager { stage = new Stage(new ScreenViewport()); } - ArrayList toDelete = new ArrayList(); - public void generateMaze(Set pl, int todraw[][]) { main.setScreen(null); @@ -55,7 +59,7 @@ public class GameManager { anyoneWon = false; - if(AMazeIng.PLATFORM == Platform.DESKTOP) { + if (AMazeIng.PLATFORM == Platform.DESKTOP) { if (pl != null) { for (MazePlayer p : players) if (!pl.contains(p)) @@ -74,15 +78,13 @@ public class GameManager { } toDelete.clear(); } - }else{ - for (MazePlayer p : players) { + } else { + for (MazePlayer p : players) p.dispose(); - } players.clear(); players.addAll(pl); } - for (int i = 0; i < MazeSettings.MAZEX; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < MazeSettings.MAZEZ; k++) { @@ -97,6 +99,8 @@ public class GameManager { if (type != GameType.CLIENT) { spreadPlayers(); mazeGen.setupEndPoint(); + powerups.clear(); + spawnPowerUps(); } if (todraw != null && showGame == true) { @@ -112,14 +116,17 @@ public class GameManager { for (MazePlayer p : players) { if (p instanceof MazePlayerLocal) stage.addActor(((MazePlayerLocal) p).tctrl); + stage.addActor(((MazePlayerLocal) p).touchpadPowerUp); } AMazeIng.getMain().multiplexer.addProcessor(stage); } public void update() { + main.currentGameManager = this; if (gameStarted && !anyoneWon) { + pup = null; if (getShowGame()) { main.world.render(); @@ -133,10 +140,27 @@ public class GameManager { } main.world.modelBatch.begin(main.world.cam); + if (getShowGame()) + for (PowerUp p : powerups) + p.render(main.world.modelBatch, main.world.environment); + if (players != null) { for (MazePlayer p : players) { - if (getShowGame() && !p.isDisposed()) - p.render(main.world.modelBatch, main.world.environment); + if (!p.isDisposed()) { + // Check if there's a power-up in the same spot, if so give it to the player + for (PowerUp p1 : powerups) + if ((int) p1.getPosition().x == (int) p.getPos().x + && (int) p1.getPosition().z == (int) p.getPos().z) { + pup = p1; + p.currentPowerUp = pup; + break; + } + if (pup != null) + powerups.remove(pup); + + if (getShowGame()) + p.render(main.world.modelBatch, main.world.environment); + } anyoneWon = false; if (type != GameType.CLIENT) { @@ -161,7 +185,6 @@ public class GameManager { } main.world.modelBatch.end(); - } } @@ -177,6 +200,21 @@ public class GameManager { p.setPlaying(); p.setPos(x + 0.5f, 2f, z + 0.5f); } + } + + public void spawnPowerUps() { + + for (int i = 0; i < MazeSettings.START_POWERUPS; i++) { + PowerUp p = PowerUps.pickRandomPU(); + int x = 1, z = 1; + do { + x = (Math.abs(rand.nextInt() - 1) % (mazeGen.w)); + z = (Math.abs(rand.nextInt() - 1) % (mazeGen.h)); + } while (thereIsPlayerInPos(x, z) || mazeGen.occupiedSpot(x, z) || thereIsPowerUpInPos(x, z)); + p.setPosition(x + 0.5f, 1.25f, z + 0.5f); + powerups.add(p); + System.out.println("Spawning power-up in " + x + ", " + z); + } } @@ -212,6 +250,14 @@ public class GameManager { return false; } + public boolean thereIsPowerUpInPos(int x, int z) { + for (PowerUp p : powerups) { + if ((int) p.getPosition().x == x || (int) p.getPosition().z == z) + return true; + } + return false; + } + public boolean areTherePlayersNearby(int x, int z, int range) { int i, k; for (MazePlayer p : players) { @@ -221,10 +267,17 @@ public class GameManager { if ((x - i) * (x - i) + (k - z) * (k - z) <= range * range) return true; } - return false; } + public MazePlayer getRandomPlayer() { + return players.get(Math.abs(rand.nextInt() % players.size())); + } + + public void requestChangeToMap(int[][] todraw) { + mazeGen.requestChangeToMap(todraw); + } + public void resetCamera() { main.world.cam.position.set(0f, 0f, 0.5f); // Set cam position at origin main.world.cam.lookAt(0, 0, 0); // Direction to look at, for setting direction (perhaps better to set manually) diff --git a/core/src/com/emamaker/amazeing/manager/network/GameClient.java b/core/src/com/emamaker/amazeing/manager/network/GameClient.java index 229aa01..a87508d 100644 --- a/core/src/com/emamaker/amazeing/manager/network/GameClient.java +++ b/core/src/com/emamaker/amazeing/manager/network/GameClient.java @@ -5,8 +5,6 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Hashtable; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.math.Quaternion; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.scenes.scene2d.ui.Touchpad; @@ -240,29 +238,26 @@ public class GameClient { // Consantly search for new players to be added if(AMazeIng.PLATFORM == AMazeIng.Platform.DESKTOP) { // Search for keyboard players (WASD and ARROWS) on Desktop - if (Gdx.input.isKeyJustPressed(Keys.W) || Gdx.input.isKeyJustPressed(Keys.A) - || Gdx.input.isKeyJustPressed(Keys.S) || Gdx.input.isKeyJustPressed(Keys.D)) { - p = PlayerUtils.getPlayerWithKeys(new HashSet<>(players.values()), Keys.W, Keys.S, Keys.A, Keys.D); + if (PlayerUtils.wasdPressed()) { + p = PlayerUtils.getPlayerWithKeys(new HashSet<>(players.values()), PlayerUtils.WASDKEYS); if (p != null) { RemovePlayer msg = new RemovePlayer(); msg.uuid = p.uuid; client.sendTCP(msg); } else { - localPlrQueue.add(new MazePlayerLocal(Keys.W, Keys.S, Keys.A, Keys.D)); + localPlrQueue.add(new MazePlayerLocal(PlayerUtils.WASDKEYS)); client.sendTCP(new LoginAO()); } } - if (Gdx.input.isKeyJustPressed(Keys.UP) || Gdx.input.isKeyJustPressed(Keys.LEFT) - || Gdx.input.isKeyJustPressed(Keys.DOWN) || Gdx.input.isKeyJustPressed(Keys.RIGHT)) { - p = PlayerUtils.getPlayerWithKeys(new HashSet<>(players.values()), Keys.UP, Keys.DOWN, Keys.LEFT, - Keys.RIGHT); + if (PlayerUtils.arrowsPressed()) { + p = PlayerUtils.getPlayerWithKeys(new HashSet<>(players.values()), PlayerUtils.ARROWKEYS); if (p != null) { RemovePlayer msg = new RemovePlayer(); msg.uuid = p.uuid; client.sendTCP(msg); } else { - localPlrQueue.add(new MazePlayerLocal(Keys.UP, Keys.DOWN, Keys.LEFT, Keys.RIGHT)); + localPlrQueue.add(new MazePlayerLocal( PlayerUtils.ARROWKEYS)); client.sendTCP(new LoginAO()); } } @@ -311,6 +306,10 @@ public class GameClient { client.sendTCP(pu); } } + + public void requestUpdateMap(int[][] tmpMap) { + + } public void setUpdateMobilePlayers(){ updateMobilePlayers = true; diff --git a/core/src/com/emamaker/amazeing/maze/MazeGenerator.java b/core/src/com/emamaker/amazeing/maze/MazeGenerator.java index fe38129..68c53ca 100755 --- a/core/src/com/emamaker/amazeing/maze/MazeGenerator.java +++ b/core/src/com/emamaker/amazeing/maze/MazeGenerator.java @@ -15,9 +15,9 @@ public class MazeGenerator { Cell currentCell; Cell[][] cellsGrid; ArrayList stack = new ArrayList(); - public int[][] todraw; + public static int[][] todraw; - public int w, h, W, H; + public static int w, h, W, H; public int WINX = Integer.MAX_VALUE, WINZ = Integer.MAX_VALUE; public int OLDMAZEX, OLDMAZEZ; @@ -234,15 +234,15 @@ public class MazeGenerator { public void show(int[][] todraw_) { - for (int j = 0; j < OLDMAZEX+2; j++) { - for (int i = 0; i < OLDMAZEZ+2; i++) { + for (int j = 0; j < OLDMAZEX + 2; j++) { + for (int i = 0; i < OLDMAZEZ + 2; i++) { main.world.worldManager.setCell(i, 0, j, CellId.ID_AIR); main.world.worldManager.setCell(i, 1, j, CellId.ID_AIR); } } OLDMAZEX = MazeSettings.MAZEX; OLDMAZEZ = MazeSettings.MAZEZ; - + for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { todraw[i][j] = todraw_[i][j]; @@ -260,6 +260,19 @@ public class MazeGenerator { } } } + + public static int[][] changeMap(int[][] tmp, int x, int z, int type) { + if(x > 0 && x < w - 1 && z > 0 && z < h - 1 && todraw[x][z] != 2) tmp[x][z] = type; + return tmp; + } + + public void requestChangeToMap(int[][] todraw_) { + if(AMazeIng.getMain().client.isRunning()) { + AMazeIng.getMain().client.requestUpdateMap(todraw_); + }else { + show(todraw_); + } + } boolean allCellsVisited() { for (int i = 0; i < W; i++) { diff --git a/core/src/com/emamaker/amazeing/maze/settings/MazeSetting.java b/core/src/com/emamaker/amazeing/maze/settings/MazeSetting.java index 0786800..c8f1f2a 100644 --- a/core/src/com/emamaker/amazeing/maze/settings/MazeSetting.java +++ b/core/src/com/emamaker/amazeing/maze/settings/MazeSetting.java @@ -43,6 +43,15 @@ public class MazeSetting { setOptions(options_, defaultOption); update(); + + //Build the Table which will be later used to add this to the screen + table = new Table(); + nameLabel = new Label(this.name, uiManager.skin); + currentOptLabel = new Label(this.options[currentOption], uiManager.skin); + backBtn = new TextButton("<", uiManager.skin); + forthBtn = new TextButton(">", uiManager.skin); + resetBtn = new TextButton("R", uiManager.skin); + // Add actions to the buttons backBtn.addListener(new InputListener() { @Override diff --git a/core/src/com/emamaker/amazeing/maze/settings/MazeSettingStartPowerUps.java b/core/src/com/emamaker/amazeing/maze/settings/MazeSettingStartPowerUps.java new file mode 100644 index 0000000..8a6ac00 --- /dev/null +++ b/core/src/com/emamaker/amazeing/maze/settings/MazeSettingStartPowerUps.java @@ -0,0 +1,21 @@ +package com.emamaker.amazeing.maze.settings; + +import com.emamaker.amazeing.ui.UIManager; + +public class MazeSettingStartPowerUps extends MazeSetting{ + + /* Game max. number of players settings*/ + + public MazeSettingStartPowerUps(String name_, String[] options_, UIManager uiManager_) { + super(name_, options_, uiManager_); + } + public MazeSettingStartPowerUps(String name_, String[] options_, int defaultOption, UIManager uiManager_) { + super(name_, options_, defaultOption, uiManager_); + } + + @Override + public void parseOptionString(String opt) { + MazeSettings.START_POWERUPS = Integer.valueOf(opt); + } + +} diff --git a/core/src/com/emamaker/amazeing/maze/settings/MazeSettings.java b/core/src/com/emamaker/amazeing/maze/settings/MazeSettings.java index fbfc16a..7ca4358 100644 --- a/core/src/com/emamaker/amazeing/maze/settings/MazeSettings.java +++ b/core/src/com/emamaker/amazeing/maze/settings/MazeSettings.java @@ -6,53 +6,60 @@ import com.emamaker.amazeing.AMazeIng; public class MazeSettings { - //This must only hold public static variables to eventually their getters and setters + // This must only hold public static variables to eventually their getters and + // setters public static int MAZEX = 20; public static int MAZEZ = 20; public static int MAXPLAYERS = 8; public static int MAXPLAYERS_MOBILE = 1; public static int EPDIST = 5; - + public static int START_POWERUPS = 3; + public static ArrayList settings = new ArrayList(); public static MazeSetting setDim; public static MazeSetting setPlayers; public static MazeSetting setPlayers_Mobile; public static MazeSetting setEpDist; + public static MazeSetting setStartPowerups; + + public static String[] maxPlayersDesktop = new String[] { "2", "4", "6", "8", "10", "15", "20" }; + public static String[] maxPlayersMobile = new String[] { "1", "2", "3", "4" }; - public static String[] maxPlayersDesktop = new String[] { - "2", "4", "6", "8", "10", "15", "20" - }; - public static String[] maxPlayersMobile = new String[] { - "1", "2", "3", "4" - }; - public MazeSettings() { - //Add various settings here - setDim = new MazeSettingDimension("MAZE DIMENSIONS:", new String[] { - "10x10", "20x20", "30x30" - }, 1, AMazeIng.getMain().uiManager); + // Add various settings here + setDim = new MazeSettingDimension("MAZE DIMENSIONS:", new String[] { "10x10", "20x20", "30x30" }, 1, + AMazeIng.getMain().uiManager); - setPlayers = new MazeSettingMaxPlayers("MAX NUMBER OF PLAYERS: ", maxPlayersDesktop, AMazeIng.getMain().uiManager); - setPlayers_Mobile = new MazeSettingMaxPlayersMobile("PLAYERS JOINING FROM THIS DEVICE: ", maxPlayersMobile, 0, AMazeIng.getMain().uiManager); + setPlayers = new MazeSettingMaxPlayers("MAX NUMBER OF PLAYERS: ", maxPlayersDesktop, + AMazeIng.getMain().uiManager); + setPlayers_Mobile = new MazeSettingMaxPlayersMobile("PLAYERS JOINING FROM THIS DEVICE: ", maxPlayersMobile, 0, + AMazeIng.getMain().uiManager); - setEpDist = new MazeSettingEPDIST("END POINT DISTANCE:", new String[] { - "1", "2", "5", "10", "20" - }, 2, AMazeIng.getMain().uiManager); + setStartPowerups = new MazeSettingStartPowerUps("POWERUPS AT START : ", + new String[] { "1", "2", "3", "4", "5", "8", "10", "15" }, 3, AMazeIng.getMain().uiManager); + + setEpDist = new MazeSettingEPDIST("END POINT DISTANCE:", new String[] { "1", "2", "5", "10", "20" }, 2, + AMazeIng.getMain().uiManager); settings.add(setDim); settings.add(setPlayers); settings.add(setEpDist); + settings.add(setStartPowerups); } public static void saveStates() { - for(MazeSetting m : settings) m.saveState(); + for (MazeSetting m : settings) + m.saveState(); } + public static void restoreStates() { - for(MazeSetting m : settings) m.saveState(); + for (MazeSetting m : settings) + m.saveState(); } + public static void resetAll() { - for(MazeSetting m : settings) m.reset(); + for (MazeSetting m : settings) + m.reset(); } - - + } diff --git a/core/src/com/emamaker/amazeing/player/MazePlayer.java b/core/src/com/emamaker/amazeing/player/MazePlayer.java index 13d4943..c469a22 100644 --- a/core/src/com/emamaker/amazeing/player/MazePlayer.java +++ b/core/src/com/emamaker/amazeing/player/MazePlayer.java @@ -16,6 +16,7 @@ import com.badlogic.gdx.math.Quaternion; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.utils.Disposable; import com.emamaker.amazeing.AMazeIng; +import com.emamaker.amazeing.player.powerups.PowerUp; import com.emamaker.voxelengine.physics.GameObject; public abstract class MazePlayer implements Disposable { @@ -37,6 +38,13 @@ public abstract class MazePlayer implements Disposable { boolean playing = false; boolean show = true; public String uuid; + public PowerUp currentPowerUp; + + public float baseSpeed = 3f; + public float baseTurnSpeed = 2.5f; + public float speedMult = 1f; + public float speed; + public float turnSpeed; Vector3 pos = new Vector3(); Quaternion rot = new Quaternion(); @@ -115,6 +123,16 @@ public abstract class MazePlayer implements Disposable { } public void update() { + speed = baseSpeed * speedMult; + turnSpeed = baseTurnSpeed * speedMult; + + if(currentPowerUp != null && currentPowerUp.continousEffect) usePowerUp(); + } + + public void usePowerUp() { + if (currentPowerUp != null && !currentPowerUp.beingUsed) + if (currentPowerUp.usePowerUp(this)) + currentPowerUp = null; } @Override diff --git a/core/src/com/emamaker/amazeing/player/MazePlayerLocal.java b/core/src/com/emamaker/amazeing/player/MazePlayerLocal.java index 5dc464e..aff9a34 100644 --- a/core/src/com/emamaker/amazeing/player/MazePlayerLocal.java +++ b/core/src/com/emamaker/amazeing/player/MazePlayerLocal.java @@ -14,293 +14,315 @@ import com.badlogic.gdx.physics.bullet.dynamics.btDiscreteDynamicsWorld; import com.badlogic.gdx.physics.bullet.dynamics.btKinematicCharacterController; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; +import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.Touchpad; import com.emamaker.amazeing.AMazeIng; public class MazePlayerLocal extends MazePlayer { - /* - * Player controlled on local machine with mouse and kbd, touch or controller - * (in a remote future= - */ + /* + * Player controlled on local machine with mouse and kbd, touch or controller + * (in a remote future= + */ - btConvexShape ghostShape; - public btPairCachingGhostObject ghostObject; - public btKinematicCharacterController characterController; - Matrix4 characterTransform; - Vector3 characterDirection = new Vector3(); - Vector3 walkDirection = new Vector3(); - public Controller ctrl; - public Touchpad tctrl; - public int tctrlPosition; + btConvexShape ghostShape; + public btPairCachingGhostObject ghostObject; + public btKinematicCharacterController characterController; + Matrix4 characterTransform; + Vector3 characterDirection = new Vector3(); + Vector3 walkDirection = new Vector3(); + public Controller ctrl; + public Touchpad tctrl; + public int tctrlPosition; - boolean touchpadPressed = false; - float oldAngle = 0, angle; + boolean touchpadPressed = false; + public TextButton touchpadPowerUp; + float oldAngle = 0, angle; - // Physics using LibGDX's bullet wrapper - public int kup, kdown, ksx, kdx; - float startx, starty, startz; + // Physics using LibGDX's bullet wrapper + public int kup, kdown, ksx, kdx, kpup; + float startx, starty, startz; - // Give keys in up, down, left, right order - public MazePlayerLocal(int... keys) { - this(keys[0], keys[1], keys[2], keys[3]); - } + // Give keys in up, down, left, right order + public MazePlayerLocal(int... keys) { + this(keys[0], keys[1], keys[2], keys[3], keys[4]); + } - public MazePlayerLocal(int up_, int down_, int sx_, int dx_) { - this(up_, down_, sx_, dx_, 0, 0, 0); - } + public MazePlayerLocal(int up_, int down_, int sx_, int dx_, int pup_) { + this(up_, down_, sx_, dx_, pup_, 0, 0, 0); + } - public MazePlayerLocal(int up_, int down_, int sx_, int dx_, String name) { - this(up_, down_, sx_, dx_, 0, 0, 0, name); - } + public MazePlayerLocal(int up_, int down_, int sx_, int dx_, int pup_, String name) { + this(up_, down_, sx_, dx_, pup_, 0, 0, 0, name); + } - public MazePlayerLocal(int up_, int down_, int sx_, int dx_, float startx, float starty, float startz) { - this(up_, down_, sx_, dx_, startx, starty, startz, String.valueOf((char) (65 + rand.nextInt(26)))); - } + public MazePlayerLocal(int up_, int down_, int sx_, int dx_, int pup_, float startx, float starty, float startz) { + this(up_, down_, sx_, dx_, pup_, startx, starty, startz, String.valueOf((char) (65 + rand.nextInt(26)))); + } - public MazePlayerLocal(int up_, int down_, int sx_, int dx_, float startx, float starty, float startz, - String name) { - super(name, true); - this.kup = up_; - this.kdown = down_; - this.ksx = sx_; - this.kdx = dx_; + public MazePlayerLocal(int up_, int down_, int sx_, int dx_, int pup_, float startx, float starty, float startz, + String name) { + super(name, true); + this.kup = up_; + this.kdown = down_; + this.ksx = sx_; + this.kdx = dx_; + this.kpup = pup_; - this.startx = startx; - this.starty = starty; - this.startz = startz; + this.startx = startx; + this.starty = starty; + this.startz = startz; - initPhysics(); - } + initPhysics(); + } - public MazePlayerLocal(Controller ctrl_) { - this(ctrl_, 0, 0, 0); - } + public MazePlayerLocal(Controller ctrl_) { + this(ctrl_, 0, 0, 0); + } - public MazePlayerLocal(Controller ctrl_, String name) { - this(ctrl_, 0, 0, 0, name); - } + public MazePlayerLocal(Controller ctrl_, String name) { + this(ctrl_, 0, 0, 0, name); + } - public MazePlayerLocal(Controller crtl_, float startx, float starty, float startz) { - this(crtl_, startx, starty, startz, String.valueOf((char) (65 + rand.nextInt(26)))); - } + public MazePlayerLocal(Controller crtl_, float startx, float starty, float startz) { + this(crtl_, startx, starty, startz, String.valueOf((char) (65 + rand.nextInt(26)))); + } - public MazePlayerLocal(Controller ctrl_, float startx, float starty, float startz, String name) { - super(true); - this.ctrl = ctrl_; + public MazePlayerLocal(Controller ctrl_, float startx, float starty, float startz, String name) { + super(true); + this.ctrl = ctrl_; - this.startx = startx; - this.starty = starty; - this.startz = startz; + this.startx = startx; + this.starty = starty; + this.startz = startz; - initPhysics(); - } + initPhysics(); + } - public MazePlayerLocal(Touchpad ctrl_, int p) { - this(ctrl_, p, 0, 0, 0); - } + public MazePlayerLocal(Touchpad ctrl_, int p) { + this(ctrl_, p, 0, 0, 0); + } - public MazePlayerLocal(Touchpad ctrl_, int p, String name) { - this(ctrl_, p, 0, 0, 0, name); - } + public MazePlayerLocal(Touchpad ctrl_, int p, String name) { + this(ctrl_, p, 0, 0, 0, name); + } - public MazePlayerLocal(Touchpad crtl_, int p, float startx, float starty, float startz) { - this(crtl_, p, startx, starty, startz, String.valueOf((char) (65 + rand.nextInt(26)))); - } + public MazePlayerLocal(Touchpad crtl_, int p, float startx, float starty, float startz) { + this(crtl_, p, startx, starty, startz, String.valueOf((char) (65 + rand.nextInt(26)))); + } - public MazePlayerLocal(Touchpad ctrl_, int p, float startx, float starty, float startz, String name) { - super(true); - this.tctrl = ctrl_; + public MazePlayerLocal(Touchpad ctrl_, int p, float startx, float starty, float startz, String name) { + super(true); + this.tctrl = ctrl_; - this.startx = startx; - this.starty = starty; - this.startz = startz; - this.tctrlPosition = p; + this.startx = startx; + this.starty = starty; + this.startz = startz; + this.tctrlPosition = p; - tctrl.setResetOnTouchUp(true); + tctrl.setResetOnTouchUp(true); - oldAngle = 0; - angle = 0; - touchpadPressed = false; + oldAngle = 0; + angle = 0; + touchpadPressed = false; - tctrl.setSize(Gdx.graphics.getHeight() / 6f, Gdx.graphics.getHeight() / 6f); + touchpadPowerUp = new TextButton("No object to use", AMazeIng.getMain().uiManager.skin); + + tctrl.setSize(Gdx.graphics.getHeight() / 6f, Gdx.graphics.getHeight() / 6f); + touchpadPowerUp.setSize(Gdx.graphics.getHeight() / 6f, Gdx.graphics.getHeight() / 12f); + + tctrl.addListener(new InputListener() { + @Override + public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { + return true; + } - tctrl.addListener(new InputListener() { + @Override + public void touchDragged(InputEvent event, float x, float y, int pointer) { + oldAngle = angle; + angle = MathUtils.atan2(-tctrl.getKnobPercentY(), -tctrl.getKnobPercentX()) * 180f / MathUtils.PI; - @Override - public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { - return true; - } + touchpadPressed = true; + // System.out.println(angle); + } - @Override - public void touchDragged(InputEvent event, float x, float y, int pointer) { - oldAngle = angle; - angle = MathUtils.atan2(-tctrl.getKnobPercentY(), -tctrl.getKnobPercentX()) * 180f / MathUtils.PI; + @Override + public void touchUp(InputEvent event, float x, float y, int pointer, int button) { + touchpadPressed = false; + } + }); - touchpadPressed = true; - //System.out.println(angle); - } + touchpadPowerUp.addListener(new InputListener() { + @Override + public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { + usePowerUp(); + return true; + } + }); - @Override - public void touchUp(InputEvent event, float x, float y, int pointer, int button) { - touchpadPressed = false; - } - }); + if (tctrlPosition == 0) { + tctrl.setPosition(tctrl.getWidth() / 2, tctrl.getHeight() / 2); + touchpadPowerUp.setPosition(tctrl.getWidth() / 2, tctrl.getHeight() * 1.75f); + } else if (tctrlPosition == 1) { + tctrl.setPosition(Gdx.graphics.getWidth() - tctrl.getWidth() * 1.5f, tctrl.getHeight() / 2); + touchpadPowerUp.setPosition(Gdx.graphics.getWidth() - tctrl.getWidth() * 1.5f, tctrl.getHeight() * 1.75f); + } else if (tctrlPosition == 2) { + tctrl.setPosition(Gdx.graphics.getWidth() - tctrl.getWidth() * 1.5f, + Gdx.graphics.getHeight() - tctrl.getHeight() * 1.5f); + touchpadPowerUp.setPosition(Gdx.graphics.getWidth() - tctrl.getWidth() * 1.5f, Gdx.graphics.getHeight() - tctrl.getHeight() *2.25f); + } else if (tctrlPosition == 3) { + tctrl.setPosition(tctrl.getWidth() / 2, Gdx.graphics.getHeight() - tctrl.getHeight() * 1.5f); + touchpadPowerUp.setPosition(tctrl.getWidth() / 2, Gdx.graphics.getHeight() - tctrl.getHeight() * 2.25f); + } - if (tctrlPosition == 0) - tctrl.setPosition(tctrl.getWidth() / 2, tctrl.getHeight() / 2); - else if (tctrlPosition == 1) - tctrl.setPosition(Gdx.graphics.getWidth() - tctrl.getWidth() * 1.5f, tctrl.getHeight() / 2); - else if (tctrlPosition == 2) - tctrl.setPosition(Gdx.graphics.getWidth() - tctrl.getWidth() * 1.5f, Gdx.graphics.getHeight() - tctrl.getHeight() * 1.5f); - else if (tctrlPosition == 3) - tctrl.setPosition(tctrl.getWidth() / 2, Gdx.graphics.getHeight() - tctrl.getHeight() * 1.5f); + initPhysics(); + } - initPhysics(); - } + public void initPhysics() { + characterTransform = instance.transform; // Set by reference + characterTransform.set(startx, starty, startz, 0, 0, 0, 0); + // Create the physics representation of the character + ghostObject = new btPairCachingGhostObject(); + ghostObject.setWorldTransform(characterTransform); + ghostShape = new btBoxShape(new Vector3(0.3f, 0.5f, 0.3f)); + ghostObject.setCollisionShape(ghostShape); + ghostObject.setCollisionFlags(btCollisionObject.CollisionFlags.CF_CHARACTER_OBJECT); + characterController = new btKinematicCharacterController(ghostObject, ghostShape, .05f, Vector3.Y); - public void initPhysics() { - characterTransform = instance.transform; // Set by reference - characterTransform.set(startx, starty, startz, 0, 0, 0, 0); + // And add it to the physics world + main.world.dynamicsWorld.addCollisionObject(ghostObject, + (short) btBroadphaseProxy.CollisionFilterGroups.CharacterFilter, + (short) (btBroadphaseProxy.CollisionFilterGroups.StaticFilter + | btBroadphaseProxy.CollisionFilterGroups.DefaultFilter)); + ((btDiscreteDynamicsWorld) (main.world.dynamicsWorld)).addAction(characterController); + } - // Create the physics representation of the character - ghostObject = new btPairCachingGhostObject(); - ghostObject.setWorldTransform(characterTransform); - ghostShape = new btBoxShape(new Vector3(0.3f, 0.3f, 0.3f)); - ghostObject.setCollisionShape(ghostShape); - ghostObject.setCollisionFlags(btCollisionObject.CollisionFlags.CF_CHARACTER_OBJECT); - characterController = new btKinematicCharacterController(ghostObject, ghostShape, .05f, Vector3.Y); + boolean pressed = false; - // And add it to the physics world - main.world.dynamicsWorld.addCollisionObject(ghostObject, - (short) btBroadphaseProxy.CollisionFilterGroups.CharacterFilter, - (short) (btBroadphaseProxy.CollisionFilterGroups.StaticFilter - | btBroadphaseProxy.CollisionFilterGroups.DefaultFilter)); - ((btDiscreteDynamicsWorld) (main.world.dynamicsWorld)).addAction(characterController); - } + public void inputs() { + pressed = false; + // Update for touchscreen controller is done in touchpad listener + if (AMazeIng.PLATFORM == AMazeIng.Platform.DESKTOP) + if (ctrl != null) + inputController(); + else + inputKeyboard(); + else + inputTouchscreen(); - boolean pressed = false; + if (pressed) + main.client.updateLocalPlayer(this); + } - public void inputs() { - //Update for touchscreen controller is done in touchpad listener - if(AMazeIng.PLATFORM == AMazeIng.Platform.DESKTOP){ - if (ctrl != null) { + public void inputController() { - }else{ + } - pressed = false; - // If the left or right key is pressed, rotate the character and update its - // physics update accordingly. - if (Gdx.input.isKeyPressed(ksx)) { - pressed = true; - characterTransform.rotate(0, 1, 0, 2.5f); - ghostObject.setWorldTransform(characterTransform); - } - if (Gdx.input.isKeyPressed(kdx)) { - pressed = true; - characterTransform.rotate(0, 1, 0, -2.5f); - ghostObject.setWorldTransform(characterTransform); - } - // Fetch which direction the character is facing now - characterDirection.set(-1, 0, 0).rot(characterTransform).nor(); - // Set the walking direction accordingly (either forward or backward) - walkDirection.set(0, 0, 0); + public void inputKeyboard() { + if (Gdx.input.isKeyPressed(kdown)) + characterDirection.set(-1, 0, 0).rotate(90, 0, 1, 0).nor(); + if (Gdx.input.isKeyPressed(kup)) + characterDirection.set(-1, 0, 0).rotate(-90, 0, 1, 0).nor(); + if (Gdx.input.isKeyPressed(ksx)) + characterDirection.set(-1, 0, 0).rotate(0, 0, 1, 0).nor(); + if (Gdx.input.isKeyPressed(kdx)) + characterDirection.set(-1, 0, 0).rotate(180, 0, 1, 0).nor(); - if (Gdx.input.isKeyPressed(kup)) { - pressed = true; - walkDirection.add(characterDirection); - } - if (Gdx.input.isKeyPressed(kdown)) { - pressed = false; - walkDirection.add(-characterDirection.x, -characterDirection.y, -characterDirection.z); - } - walkDirection.scl(3f * Gdx.graphics.getDeltaTime()); - // And update the character controller - characterController.setWalkDirection(walkDirection); - // Now we can update the world as normally - // And fetch the new transformation of the character (this will make the model - // be rendered correctly) - ghostObject.getWorldTransform(characterTransform); - } - }else{ - if(touchpadPressed) { + if (Gdx.input.isKeyPressed(kdown) || Gdx.input.isKeyPressed(kup) || Gdx.input.isKeyPressed(ksx) + || Gdx.input.isKeyPressed(kdx)) { + walkDirection.set(0, 0, 0); + walkDirection.add(characterDirection); + walkDirection.scl(speed * Gdx.graphics.getDeltaTime()); + characterController.setWalkDirection(walkDirection); + ghostObject.getWorldTransform(characterTransform); - //characterTransform.rotate(0, 1, 0, angle-oldAngle); - //ghostObject.setWorldTransform(characterTransform); + pressed = true; + } else { + walkDirection.set(0, 0, 0); + characterController.setWalkDirection(walkDirection); + } - // Fetch which direction the character is facing now - characterDirection.set(-1, 0, 0).rotate(angle, 0, 1, 0).nor(); + if (Gdx.input.isKeyJustPressed(kpup)) + usePowerUp(); + } -// characterDirection.set(-1, 0, 0).rot(characterTransform).nor(); + public void inputTouchscreen() { + if (touchpadPressed) { + touchpadPowerUp.setText("No object to use"); + if(currentPowerUp != null) touchpadPowerUp.setText(currentPowerUp.name.toUpperCase() + "!"); + // characterTransform.rotate(0, 1, 0, angle-oldAngle); + // ghostObject.setWorldTransform(characterTransform); + // Fetch which direction the character is facing now + characterDirection.set(-1, 0, 0).rotate(angle, 0, 1, 0).nor(); - // Set the walking direction accordingly (either forward or backward) - walkDirection.set(0, 0, 0); - walkDirection.add(characterDirection); - walkDirection.scl(3f * Gdx.graphics.getDeltaTime()); - // And update the character controller - characterController.setWalkDirection(walkDirection); - // Now we can update the world as normally - // And fetch the new transformation of the character (this will make the model - // be rendered correctly) - ghostObject.getWorldTransform(characterTransform); +// characterDirection.set(-1, 0, 0).rot(characterTransform).nor(); + // Set the walking direction accordingly (either forward or backward) + walkDirection.set(0, 0, 0); + walkDirection.add(characterDirection); + walkDirection.scl(speed * Gdx.graphics.getDeltaTime()); + // And update the character controller + characterController.setWalkDirection(walkDirection); + // Now we can update the world as normally + // And fetch the new transformation of the character (this will make the model + // be rendered correctly) + ghostObject.getWorldTransform(characterTransform); - oldAngle = angle; - pressed = true; - } - } + oldAngle = angle; + pressed = true; + } else { + walkDirection.set(0, 0, 0); + characterController.setWalkDirection(walkDirection); + } + } - if (pressed) - main.client.updateLocalPlayer(this); + @Override + public void update() { + super.update(); + inputs(); + } - } + @Override + public Vector3 getPos() { + if (!disposing) { + return ghostObject.getWorldTransform().getTranslation(new Vector3()); + } + return null; + } - @Override - public void update() { - inputs(); - } + @Override + public void setPos(Vector3 v) { + this.setPos(v.x, v.y, v.z); + } - @Override - public Vector3 getPos() { - if (!disposing) { - return ghostObject.getWorldTransform().getTranslation(new Vector3()); - } - return null; - } + @Override + public void setPos(float x, float y, float z) { + if (!disposing) + setTransform(x, y, z, 0, 0, 0, 0); + } - @Override - public void setPos(Vector3 v) { - this.setPos(v.x, v.y, v.z); - } + @Override + public void setTransform(float x, float y, float z, float i, float j, float k, float l) { + if (!disposing) { + characterTransform.set(x, y, z, i, j, k, l); + ghostObject.setWorldTransform(characterTransform); + } + } - @Override - public void setPos(float x, float y, float z) { - if (!disposing) - setTransform(x, y, z, 0, 0, 0, 0); - } - - @Override - public void setTransform(float x, float y, float z, float i, float j, float k, float l) { - if (!disposing) { - characterTransform.set(x, y, z, i, j, k, l); - ghostObject.setWorldTransform(characterTransform); - } - } - - @Override - public void dispose() { - super.dispose(); - disposing = true; - if (!isDisposed()) { - main.world.dynamicsWorld.removeAction(characterController); - main.world.dynamicsWorld.removeCollisionObject(ghostObject); - characterController.dispose(); - ghostObject.dispose(); - ghostShape.dispose(); - disposed = true; - } - disposing = false; - } + @Override + public void dispose() { + super.dispose(); + disposing = true; + if (!isDisposed()) { + main.world.dynamicsWorld.removeAction(characterController); + main.world.dynamicsWorld.removeCollisionObject(ghostObject); + characterController.dispose(); + ghostObject.dispose(); + ghostShape.dispose(); + disposed = true; + } + disposing = false; + } } diff --git a/core/src/com/emamaker/amazeing/player/PlayerUtils.java b/core/src/com/emamaker/amazeing/player/PlayerUtils.java index 0f54096..9f33a04 100644 --- a/core/src/com/emamaker/amazeing/player/PlayerUtils.java +++ b/core/src/com/emamaker/amazeing/player/PlayerUtils.java @@ -4,10 +4,27 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Set; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.controllers.Controller; import com.emamaker.amazeing.maze.settings.MazeSettings; public class PlayerUtils { + + public static int[] WASDKEYS = {Keys.W, Keys.S, Keys.A, Keys.D, Keys.SPACE}; + public static int[] ARROWKEYS = {Keys.UP, Keys.DOWN, Keys.LEFT, Keys.RIGHT, Keys.SHIFT_RIGHT}; + + public static boolean wasdPressed() { + for(int i : WASDKEYS) + if(Gdx.input.isKeyJustPressed(i)) return true; + return false; + } + public static boolean arrowsPressed() { + for(int i : ARROWKEYS) + if(Gdx.input.isKeyJustPressed(i)) return true; + return false; + } + /*Utility function to add and remove players from arrays when organizing as game*/ diff --git a/core/src/com/emamaker/amazeing/player/powerups/PowerUp.java b/core/src/com/emamaker/amazeing/player/powerups/PowerUp.java new file mode 100644 index 0000000..f12e4a1 --- /dev/null +++ b/core/src/com/emamaker/amazeing/player/powerups/PowerUp.java @@ -0,0 +1,172 @@ +package com.emamaker.amazeing.player.powerups; + +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.VertexAttributes; +import com.badlogic.gdx.graphics.g3d.Environment; +import com.badlogic.gdx.graphics.g3d.Material; +import com.badlogic.gdx.graphics.g3d.Model; +import com.badlogic.gdx.graphics.g3d.ModelBatch; +import com.badlogic.gdx.graphics.g3d.ModelInstance; +import com.badlogic.gdx.graphics.g3d.attributes.BlendingAttribute; +import com.badlogic.gdx.graphics.g3d.attributes.TextureAttribute; +import com.badlogic.gdx.graphics.g3d.model.Node; +import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder; +import com.badlogic.gdx.math.Vector3; +import com.emamaker.amazeing.AMazeIng; +import com.emamaker.amazeing.player.MazePlayer; + +public class PowerUp { + + public String name; + Texture texture; + + public boolean beingUsed, continousEffect; + + ModelBuilder modelBuilder = new ModelBuilder(); + ModelInstance instance; + Model quadModel; + static int meshAttr = VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal + | VertexAttributes.Usage.TextureCoordinates; + BlendingAttribute blendingAttribute = new BlendingAttribute(); + + float scaleX, scaleZ; + + public PowerUp(String name_, Texture texture_, boolean cont) { + this(name_, texture_, cont, 1, 1); + } + + public PowerUp(String name_, Texture texture_, boolean cont, float scaleX, float scaleZ) { + this.name = name_; + this.texture = texture_; + this.scaleX = scaleX; + this.scaleZ = scaleZ; + this.continousEffect = cont; + + blendingAttribute.blended = true; + blendingAttribute.sourceFunction = GL20.GL_SRC_ALPHA; + blendingAttribute.destFunction = GL20.GL_ONE_MINUS_SRC_ALPHA; + + beingUsed = false; + + spawnQuad(); + setPosition(0, 3, 0); + } + + @SuppressWarnings("deprecation") + public void spawnQuad() { + modelBuilder.begin(); + Node n = modelBuilder.node(); + n.id = "Quad"; + modelBuilder + .part("Quad", GL20.GL_TRIANGLES, meshAttr, + new Material(TextureAttribute.createDiffuse(texture), blendingAttribute)) + .box(0.85f * scaleX, 0.000001f, 0.85f * scaleZ); + n.rotation.set(Vector3.Y, 90); + quadModel = modelBuilder.end(); + instance = new ModelInstance(quadModel); + } + + protected void setModelScale(float x, float y) { + instance.transform.scale(scaleX, 1, scaleZ); + } + + public void render(ModelBatch b, Environment e) { + b.render(instance, e); + } + + public void setPosition(float x, float y, float z) { + instance.transform.set(x, y, z, 0, 0, 0, 0); + } + + public void setPosition(Vector3 v) { + this.setPosition(v.x, v.y, v.z); + } + + public Vector3 getPosition() { + return instance.transform.getTranslation(new Vector3()); + } + + // Return true if the effect has been resolved + public boolean usePowerUp(MazePlayer player) { +// System.out.println(this.name + "!"); + return true; + } +} + +class PowerUpTemporized extends PowerUp { + + long time = 0, startTime = 0; + boolean used = false; + + + public PowerUpTemporized(String name_, Texture texture_, boolean cont, float secs_) { + this(name_, texture_, cont, secs_, 1, 1); + } + + public PowerUpTemporized(String name_, Texture texture_, boolean cont, float secs_, float scaleX, float scaleZ) { + super(name_, texture_, cont, scaleX, scaleZ); + this.time = (long) (secs_*1000); + startTime = 0; + } + + + @Override + public boolean usePowerUp(MazePlayer player) { + super.usePowerUp(player); + + if (!used) { + startTime = System.currentTimeMillis(); + used = true; + } + + if (System.currentTimeMillis() - startTime < time) { + temporizedEffect(player); + return false; + } else { + used = false; + temporizedEffectExpired(player); + return true; + } + } + + public void temporizedEffect(MazePlayer player) { + + } + + public void temporizedEffectExpired(MazePlayer player) { + + } + +} + +class PowerUpGiver extends PowerUp { + + PowerUp powerup; + MazePlayer p; + + public PowerUpGiver(PowerUp p, String name, Texture texture, boolean continuos) { + this(p, name, texture, continuos, 1f, 1f); + } + + public PowerUpGiver(PowerUp p, String name, Texture texture, boolean continuos, float scaleX, float scaleZ) { + super(name, texture, continuos, scaleX, scaleZ); + this.powerup = p; + } + + @Override + public boolean usePowerUp(MazePlayer player) { + super.usePowerUp(player); + + p = null; + if (AMazeIng.getMain().currentGameManager.players.size() > 1) { + while (p == player || p == null) + p = AMazeIng.getMain().currentGameManager.getRandomPlayer(); + p.currentPowerUp = new PowerUpBallAndChain(); + p.usePowerUp(); + } + + return true; + } + +} \ No newline at end of file diff --git a/core/src/com/emamaker/amazeing/player/powerups/PowerUpBallAndChain.java b/core/src/com/emamaker/amazeing/player/powerups/PowerUpBallAndChain.java new file mode 100644 index 0000000..535814b --- /dev/null +++ b/core/src/com/emamaker/amazeing/player/powerups/PowerUpBallAndChain.java @@ -0,0 +1,34 @@ +package com.emamaker.amazeing.player.powerups; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import com.emamaker.amazeing.player.MazePlayer; + +public class PowerUpBallAndChain extends PowerUpTemporized { + + public PowerUpBallAndChain() { + super("BALL AND CHAIN", + new Texture(Gdx.files.internal("data/powerups/ball_and_chain.png")), true, + 10, 1f, 1f); + } + + @Override + public void temporizedEffect(MazePlayer player) { + player.speedMult = 0.5f; + } + + @Override + public void temporizedEffectExpired(MazePlayer player) { + player.speedMult = 1f; + } +} + +class PowerUpGiveBallAndChain extends PowerUpGiver { + + public PowerUpGiveBallAndChain() { + super(new PowerUpBallAndChain(), "BALL AND CHAIN GIVER", + new Texture(Gdx.files.internal("data/powerups/ball_and_chain.png")), false, + 1f, 1f); + } + +} diff --git a/core/src/com/emamaker/amazeing/player/powerups/PowerUpBomb.java b/core/src/com/emamaker/amazeing/player/powerups/PowerUpBomb.java new file mode 100644 index 0000000..ff0be44 --- /dev/null +++ b/core/src/com/emamaker/amazeing/player/powerups/PowerUpBomb.java @@ -0,0 +1,53 @@ +package com.emamaker.amazeing.player.powerups; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import com.emamaker.amazeing.AMazeIng; +import com.emamaker.amazeing.maze.MazeGenerator; +import com.emamaker.amazeing.player.MazePlayer; + +public class PowerUpBomb extends PowerUp { + + int radius = 1; + + public PowerUpBomb() { + this("BOMB", new Texture(Gdx.files.internal("data/powerups/bomb.png")), false, 1f, 1f); + } + + public PowerUpBomb(String name, Texture texture, boolean cont, float sx, float sz) { + super(name, texture, cont, sx, sz); + } + + @Override + public boolean usePowerUp(MazePlayer player) { + super.usePowerUp(player); + + int px = (int) player.getPos().x; + int pz = (int) player.getPos().z; + + int tmptodraw[][] = new int[MazeGenerator.w][MazeGenerator.h]; + + for (int i = 0; i < MazeGenerator.w; i++) + for (int k = 0; k < MazeGenerator.h; k++) + tmptodraw[i][k] = MazeGenerator.todraw[i][k]; + + for (int i = px - radius; i < px + radius + 1; i++) { + for (int k = pz - radius; k < pz + radius + 1; k++) { + tmptodraw = MazeGenerator.changeMap(tmptodraw, i, k, 0); + } + } + + AMazeIng.getMain().currentGameManager.requestChangeToMap(tmptodraw); + + return true; + } +} + +class PowerUpBigBomb extends PowerUpBomb{ + + public PowerUpBigBomb() { + super("BIG BOMB", new Texture(Gdx.files.internal("data/powerups/bomb.png")), false, 1.5f, 1.5f); + radius = 2; + } + +} diff --git a/core/src/com/emamaker/amazeing/player/powerups/PowerUpFeather.java b/core/src/com/emamaker/amazeing/player/powerups/PowerUpFeather.java new file mode 100644 index 0000000..a5fc6fc --- /dev/null +++ b/core/src/com/emamaker/amazeing/player/powerups/PowerUpFeather.java @@ -0,0 +1,24 @@ +package com.emamaker.amazeing.player.powerups; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import com.emamaker.amazeing.player.MazePlayer; + +public class PowerUpFeather extends PowerUpTemporized { + + public PowerUpFeather() { + super("FEATHER", new Texture(Gdx.files.internal("data/powerups/feather.png")), true, 10, + 1f, 1f); + } + + @Override + public void temporizedEffect(MazePlayer player) { + player.speedMult = 2f; + } + + @Override + public void temporizedEffectExpired(MazePlayer player) { + player.speedMult = 1f; + } + +} diff --git a/core/src/com/emamaker/amazeing/player/powerups/PowerUpSlug.java b/core/src/com/emamaker/amazeing/player/powerups/PowerUpSlug.java new file mode 100644 index 0000000..c7681f4 --- /dev/null +++ b/core/src/com/emamaker/amazeing/player/powerups/PowerUpSlug.java @@ -0,0 +1,33 @@ +package com.emamaker.amazeing.player.powerups; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.graphics.Texture; +import com.emamaker.amazeing.player.MazePlayer; + +public class PowerUpSlug extends PowerUpTemporized { + + public PowerUpSlug() { + super("SLUG", new Texture(Gdx.files.internal("data/powerups/slug.png")), true, 20, + 1.3f, 1.3f); + } + + @Override + public void temporizedEffect(MazePlayer player) { + player.speedMult = 0.25f; + } + + @Override + public void temporizedEffectExpired(MazePlayer player) { + player.speedMult = 1f; + } + +} + +class PowerUpGiveSlug extends PowerUpGiver { + + public PowerUpGiveSlug() { + super(new PowerUpSlug(), "SLUG GIVER", + new Texture(Gdx.files.internal("data/powerups/slug.png")), false, 1f, 1f); + } + +} diff --git a/core/src/com/emamaker/amazeing/player/powerups/PowerUps.java b/core/src/com/emamaker/amazeing/player/powerups/PowerUps.java new file mode 100644 index 0000000..46a4d07 --- /dev/null +++ b/core/src/com/emamaker/amazeing/player/powerups/PowerUps.java @@ -0,0 +1,41 @@ +package com.emamaker.amazeing.player.powerups; + +import java.util.Random; + +public class PowerUps { + +// public static PowerUp bigBomb = new PowerUpBigBomb("BIG BOMB", new Texture(Gdx.files.internal("data/powerups/bomb_big.png")))); +// public static PowerUp speed = new PowerUpSpeed("SPEED", new Texture(Gdx.files.internal("data/powerups/speed.png")))); +// public static PowerUp bigSpeed = new PowerUpBigSpeed("FASTER SPEED", new Texture(Gdx.files.internal("data/powerups/big_speed.png")))); +// public static PowerUp createWall = new PowerUpCreateWall("CREATE WALL", new Texture(Gdx.files.internal("data/powerups/wall.png")))); +// public static PowerUp floorHole = new PowerUpFloorHole("FLOOR HOLE", new Texture(Gdx.files.internal("data/powerups/floor_hole.png")))); + + static Random rand = new Random(); + + public PowerUps() { + } + + public static PowerUp pickRandomPU() { + switch (Math.abs(rand.nextInt()) % 12) { + case 0: + case 1: + case 2: + case 3: + return new PowerUpBomb(); + case 4: + return new PowerUpBigBomb(); + case 5: + case 6: + case 7: + return new PowerUpGiveBallAndChain(); + case 8: + case 9: + return new PowerUpGiveSlug(); + case 10: + case 11: + return new PowerUpFeather(); + default: + return new PowerUpGiveBallAndChain(); + } + } +} diff --git a/core/src/com/emamaker/amazeing/ui/screens/PlayerChooseScreen.java b/core/src/com/emamaker/amazeing/ui/screens/PlayerChooseScreen.java index 1e035b0..7a7d1e3 100644 --- a/core/src/com/emamaker/amazeing/ui/screens/PlayerChooseScreen.java +++ b/core/src/com/emamaker/amazeing/ui/screens/PlayerChooseScreen.java @@ -3,8 +3,6 @@ package com.emamaker.amazeing.ui.screens; import java.util.ArrayList; import java.util.HashSet; -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.ui.CheckBox; @@ -210,12 +208,10 @@ public class PlayerChooseScreen extends MyScreen { public void update() { // Consantly search for new players to be added // First search for keyboard players (WASD and ARROWS) - if (Gdx.input.isKeyJustPressed(Keys.W) || Gdx.input.isKeyJustPressed(Keys.A) - || Gdx.input.isKeyJustPressed(Keys.S) || Gdx.input.isKeyJustPressed(Keys.D)) - PlayerUtils.togglePlayerWithKeys(players, Keys.W, Keys.S, Keys.A, Keys.D); - if (Gdx.input.isKeyJustPressed(Keys.UP) || Gdx.input.isKeyJustPressed(Keys.LEFT) - || Gdx.input.isKeyJustPressed(Keys.DOWN) || Gdx.input.isKeyJustPressed(Keys.RIGHT)) - PlayerUtils.togglePlayerWithKeys(players, Keys.UP, Keys.DOWN, Keys.LEFT, Keys.RIGHT); + if (PlayerUtils.wasdPressed()) + PlayerUtils.togglePlayerWithKeys(players, PlayerUtils.WASDKEYS); + if (PlayerUtils.arrowsPressed()) + PlayerUtils.togglePlayerWithKeys(players, PlayerUtils.ARROWKEYS); // for (Controller c : Controllers.getControllers()) { // System.out.println(c.getButton(Xbox.A)); diff --git a/core/src/shaders/shader.txt b/core/src/shaders/shader.txt deleted file mode 100755 index 69870d6..0000000 --- a/core/src/shaders/shader.txt +++ /dev/null @@ -1,8 +0,0 @@ - attribute vec4 a_position; - - uniform mat4 u_projectionViewMatrix; - - void main() - { - gl_Position = u_projectionViewMatrix * a_position; - } \ No newline at end of file diff --git a/desktop/assets/data/Untitled.xcf b/desktop/assets/data/Untitled.xcf new file mode 100644 index 0000000000000000000000000000000000000000..3b98945931b5df21b0775539f0f7748abfc7fb46 GIT binary patch literal 58123 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 literal 0 HcmV?d00001 diff --git a/desktop/assets/data/default.fnt b/desktop/assets/data/default.fnt new file mode 100755 index 0000000..6152b0a --- /dev/null +++ b/desktop/assets/data/default.fnt @@ -0,0 +1,101 @@ +info face="Droid Sans" size=17 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 +common lineHeight=20 base=18 scaleW=256 scaleH=128 pages=1 packed=0 +page id=0 file="default.png" +chars count=96 +char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0 +char id=124 x=0 y=0 width=6 height=20 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0 +char id=106 x=6 y=0 width=9 height=20 xoffset=-4 yoffset=3 xadvance=4 page=0 chnl=0 +char id=81 x=15 y=0 width=15 height=19 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0 +char id=74 x=30 y=0 width=11 height=19 xoffset=-5 yoffset=3 xadvance=4 page=0 chnl=0 +char id=125 x=41 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0 +char id=123 x=51 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0 +char id=93 x=61 y=0 width=8 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0 +char id=91 x=69 y=0 width=8 height=18 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=0 +char id=41 x=77 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0 +char id=40 x=86 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0 +char id=64 x=95 y=0 width=18 height=17 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0 +char id=121 x=113 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0 +char id=113 x=126 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0 +char id=112 x=139 y=0 width=13 height=17 xoffset=-2 yoffset=6 xadvance=9 page=0 chnl=0 +char id=103 x=152 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0 +char id=38 x=165 y=0 width=16 height=16 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=0 +char id=37 x=181 y=0 width=18 height=16 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0 +char id=36 x=199 y=0 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0 +char id=63 x=211 y=0 width=11 height=16 xoffset=-3 yoffset=3 xadvance=7 page=0 chnl=0 +char id=33 x=222 y=0 width=7 height=16 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0 +char id=48 x=229 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=57 x=242 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=56 x=0 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=54 x=13 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=53 x=26 y=20 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0 +char id=51 x=38 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=100 x=51 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=98 x=64 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0 +char id=85 x=77 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0 +char id=83 x=91 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0 +char id=79 x=104 y=20 width=15 height=16 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0 +char id=71 x=119 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0 +char id=67 x=133 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0 +char id=127 x=146 y=20 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0 +char id=35 x=158 y=20 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0 +char id=92 x=173 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0 +char id=47 x=184 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0 +char id=59 x=195 y=20 width=8 height=15 xoffset=-3 yoffset=6 xadvance=4 page=0 chnl=0 +char id=55 x=203 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=52 x=216 y=20 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=50 x=230 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=49 x=243 y=20 width=9 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0 +char id=116 x=0 y=36 width=10 height=15 xoffset=-3 yoffset=4 xadvance=5 page=0 chnl=0 +char id=108 x=10 y=36 width=6 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0 +char id=107 x=16 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0 +char id=105 x=28 y=36 width=7 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0 +char id=104 x=35 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0 +char id=102 x=47 y=36 width=11 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0 +char id=90 x=58 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=89 x=71 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0 +char id=88 x=84 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=87 x=98 y=36 width=19 height=15 xoffset=-3 yoffset=3 xadvance=15 page=0 chnl=0 +char id=86 x=117 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=84 x=131 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0 +char id=82 x=144 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0 +char id=80 x=157 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0 +char id=78 x=169 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0 +char id=77 x=183 y=36 width=17 height=15 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=0 +char id=76 x=200 y=36 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0 +char id=75 x=211 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0 +char id=73 x=224 y=36 width=10 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0 +char id=72 x=234 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0 +char id=70 x=0 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0 +char id=69 x=11 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0 +char id=68 x=22 y=51 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0 +char id=66 x=36 y=51 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0 +char id=65 x=49 y=51 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0 +char id=58 x=64 y=51 width=7 height=13 xoffset=-2 yoffset=6 xadvance=4 page=0 chnl=0 +char id=117 x=71 y=51 width=12 height=13 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0 +char id=115 x=83 y=51 width=11 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0 +char id=111 x=94 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0 +char id=101 x=107 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0 +char id=99 x=120 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0 +char id=97 x=132 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0 +char id=60 x=144 y=51 width=13 height=12 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0 +char id=122 x=157 y=51 width=11 height=12 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0 +char id=120 x=168 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0 +char id=119 x=181 y=51 width=17 height=12 xoffset=-3 yoffset=6 xadvance=12 page=0 chnl=0 +char id=118 x=198 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0 +char id=114 x=211 y=51 width=10 height=12 xoffset=-2 yoffset=6 xadvance=6 page=0 chnl=0 +char id=110 x=221 y=51 width=12 height=12 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0 +char id=109 x=233 y=51 width=17 height=12 xoffset=-2 yoffset=6 xadvance=15 page=0 chnl=0 +char id=94 x=0 y=66 width=13 height=11 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=62 x=13 y=66 width=13 height=11 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0 +char id=42 x=26 y=66 width=13 height=10 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0 +char id=43 x=39 y=66 width=13 height=10 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0 +char id=61 x=52 y=66 width=13 height=8 xoffset=-3 yoffset=7 xadvance=9 page=0 chnl=0 +char id=39 x=65 y=66 width=6 height=8 xoffset=-2 yoffset=3 xadvance=3 page=0 chnl=0 +char id=34 x=71 y=66 width=9 height=8 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=0 +char id=44 x=80 y=66 width=8 height=7 xoffset=-3 yoffset=14 xadvance=4 page=0 chnl=0 +char id=126 x=88 y=66 width=13 height=6 xoffset=-3 yoffset=8 xadvance=9 page=0 chnl=0 +char id=46 x=101 y=66 width=7 height=6 xoffset=-2 yoffset=13 xadvance=4 page=0 chnl=0 +char id=96 x=108 y=66 width=8 height=6 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=45 x=116 y=66 width=9 height=5 xoffset=-3 yoffset=10 xadvance=5 page=0 chnl=0 +char id=95 x=125 y=66 width=13 height=4 xoffset=-4 yoffset=17 xadvance=6 page=0 chnl=0 +kernings count=-1 diff --git a/desktop/assets/data/powerups/Untitled.xcf b/desktop/assets/data/powerups/Untitled.xcf new file mode 100644 index 0000000000000000000000000000000000000000..45f3b4470ac217fea462a0b9941b41c2f48c7c9f GIT binary patch literal 2215 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 Az5oCK literal 0 HcmV?d00001 diff --git a/desktop/assets/data/powerups/ball_and_chain.xcf b/desktop/assets/data/powerups/ball_and_chain.xcf new file mode 100644 index 0000000000000000000000000000000000000000..435bd21d5b9c4e27343037fa39c7596f188b5c61 GIT binary patch literal 3763 zcmeH~Yit}>6@c%~u6Mn!dC$(iXJ%(+pWc`4kd%g`I3-c4WD-hXqtFH%$99}1cFCg; zkV+&3h?fvj6e3lTiV%oMluE6jKTrrlsu~~?u>>&^lIvEqY1rB%m;}f1?%~|E4UQCv z3ZeeuuFlN4=bZbT^WB*p9XtA@{>;#b{#31ACs_0qq52sV0mbFQi-gj>1x-}2$S59^ zAWCFKr*R6(JW6;JyDkq+96dTbegf-+I>jx=h6hg!AJm^7J8?+gwteSr>ft+~V@C%^ zhs&eK#tu>&js9`|_=#ta4C}`yj*J~F1o9)JLlZ|Pj_LW%t$b|sz@T31{OSdCAGnXZ zu6KUa{mk(v2ZzSSNA-FQYtPa4Iig1CPqe%51-IG@oV&D_1<7Q z=QYK3cui$hwNTMf=-PqY$hPyLUlT(u(X#08E)TOwI4})CLHM1}YV446z7aG0TamPIvb7R@L=ZJw|6Ws~?A-EfLrn4G}{H#cdbAWM>< z+V#G?9`O^Nr2DFc7(RG_DO?_W`;mGy5=%ry9L?^pmJA6K&863>1tUt}t(lodv-!h^ z`!z*YBB_`f({in4{&Z{$ud*XsG`K9f>P?OS4ydPg3Z->i*hFh*LM2Bf^9LzDRN1bL_X**)T=!` zsdUaO_SExgveCTWCQW7C@svW7wu?rxlS62Kh`WpVW;WE)-DBLIY#2XECN` zr860fk!3{|1T~&WTRrR4u#_%tX#iY**T9$!70WQpOk9y85i#szl)SZWTOy(tw>B_S zYYeZE0Hi4HHsT|xEmq(OZ9_Dhs2%t*pu_A)>-?+&I6 zO&dm{oKc?(iSf~Erv~8ecn~WSW67q0k37I&r+|FArDX~tbGUc4|p3D>SoPlE;?4|u2xcNUMHxz~R2 zOei1sOEN>Ir!@{3+;tDS-8h-KzyA7n&jtMcuq5N*$#FqVqeS9lJ7Y2Mj)_oybub;~ zC7u;SUJu7=T1e*bDDK3(cmbg_fBVXwotr(pfZ!%0VGo{>oN6W64wQIqOe2&gPih(w z1Wrkqd0j!0IIdE+qIl*mLpe>)nDq&k6?mSNtXe&rl6-_C$$BNHBEvwg;u7K1ma;5G zRGH%h)#|MjG_=Kx}2`X6j>BiIV=`x)t-Dj5)Ika zT2Ac5;M%_2Zy7q1LMRoU=V2qW)n39e;uNiSc5Ct}@#Nr7fSCN8T!rtfrSXK&S`U+Yqt)(KO zAW2-H%OzQQ?V+fYvNt=J9wmJ6rCc_Xj;Sgi2=gJomyPQ723^<6j)PE^3%02xR9uTF z27_|S{?Nm22cazX7A-B2ib}i`;nh@j-L`!=7(!_xl)H99*~n$IWK5056RMW&-TfFs ziLTjQ&MwC(ZYxCNDZ|R+2#`P^xC|w>z86XsK_LMOC5vQW z;}s}zA~(*xdS576ll||ZB!T}7<+)csFeup%5K8lXK#4K$14@MH|4{y~p!_2F25DWq zwNE3hzd=hQu*g7~EaCato5q*K;`~`crp`w3b%t*$So+7?cR(czKwp`#uk8jual7Wb zd_J$w=fTgy&MR|~^tRygDL0USy%w9t?-E zvhk%h2kjTisJkDXrux+OFlluSF7nWB?GKZ-_pk^sjtVm*Li=e~h_pP9&!hMDC`(#f zFVi-^|2Rw9`7>xdzYdL|PtM^8w>}r)NQ-;^MhIHBe^9_Vx=TO$djR+0r&~e-);4?> zKfV`ko_|!q#Y;i_Kgp20)h}H9(=7(>EX=(2m4{?EM`m3N{i7M&eDeDjU;ow1U*91U Vw?J;X+#Uwa9!})sTp<)D{{%_r4!8gS literal 0 HcmV?d00001 diff --git a/desktop/assets/data/powerups/bomb.png b/desktop/assets/data/powerups/bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..3993ae938da202fa7bcdc262eedcbac0dfd18331 GIT binary patch literal 2075 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 literal 0 HcmV?d00001 diff --git a/desktop/assets/data/powerups/bomb.xcf b/desktop/assets/data/powerups/bomb.xcf new file mode 100644 index 0000000000000000000000000000000000000000..91502336fa63330bce2ba1f19194219581aef969 GIT binary patch literal 2741 zcmeHIU2G#)6}~gJW5++^pRql5{5Q_Eoj;P;yNH?sT`4QEsxZ_N=a*X3OKa^# zwsG_?#@9Dqx!y9@SFg7hCxYYGmKIj8udbQn{bqV?>4kZ--hUbsaKG?B+zqq;u>0lp zm*yARD@$ghj@~Pe_0BreH&)skW_xAf#nw8HSiN>_y|rQX;|KUDeLR@gJW!PH4Rp?_ z3BusLh34iLzQ44#dSj)(T@@xSLja#D0cGZweuVn;l-bThhXLkXMuBslAK<|OZVvF! z01prF$N-Om^IJVHeh{96^H2p5Wr5-Z*XhwTYT>wsv(3{JfYT z3>5X}r>zi+L~fB(fZQx8{Wd_4_U?7=byDanHsIX=9%*SWLl3*XsX$;HyyXeN%$`^f7aypOS) zUy1`G$)uh&s%A{Z?!E5Au4~(+gbt|sVIn_sv6jbaddTm(_EQ;yk<03Ox_EJRB8xNk z(2)B8i%HsFFp;X1&E(Dc>_j;u`b+h?54!fWEHl!2+9;+n(--QK`4oG7?*6_#RgsKh z+0YZwp{WZ~Glh~($lC4NmGKH=td`gHs5Vx=Fqtgb9xPMoy0x*I4OA+HOw==!_*`S$ z$lC$xcK=o`RBgblmEw9ls+X(j%9tIb59`vDjA|~GHuOlqKUR5K#rgT^V6s{oVPq4b zWHcN!>cO)DtocnQ5d5RjNWIRVegGu=0YiDMZrGH9U$KCPg0M0zEVL zl`pC|Z4y!XSdy5So4aYxJ+phabGM_yh8(hYbI!MW(h=x#>ce0DZns1G`@6eQI)J80 zN}}CeB8zR71?@=I4uULwc>nd+!=YfJuO0aTiMzYdjyHH`b2+2w>2NZN%M9(vgWqH9 z=F=LGiN|AxQORqp9aSprhb#M*m5aszHFg-y&NM0++))oEQm*c|f83VVg=CUpq+&5W z-dsk(<_dHzc&fTA&QAZbgo=s zgDQ@jFnQGo272(J@`#5`qF>!RI=Xx7k{=n>9ejdd?tSNefO@YPKJn;VU1!_r+XDB4 z)Y~?^;^dv~4sM3y6}|MILqxA(fYZfqxCs(@K0~pcIFirSXNL-c^p^M! Dhb9=k literal 0 HcmV?d00001 diff --git a/desktop/assets/data/powerups/feather.png b/desktop/assets/data/powerups/feather.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe93e38cf3781829496994dc35aadf31502da27 GIT binary patch literal 1507 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 literal 0 HcmV?d00001 diff --git a/desktop/assets/data/shaders/testshader_frag.glsl b/desktop/assets/data/shaders/testshader_frag.glsl new file mode 100644 index 0000000..6862ea6 --- /dev/null +++ b/desktop/assets/data/shaders/testshader_frag.glsl @@ -0,0 +1,10 @@ + +#ifdef GL_ES +precision mediump float; +#endif + +varying vec2 v_texCoord0; + +void main() { + gl_FragColor = vec4(v_texCoord0, 0.0, 1.0); +} \ No newline at end of file diff --git a/desktop/assets/data/shaders/testshader_vert.glsl b/desktop/assets/data/shaders/testshader_vert.glsl new file mode 100644 index 0000000..fdb4e81 --- /dev/null +++ b/desktop/assets/data/shaders/testshader_vert.glsl @@ -0,0 +1,13 @@ +attribute vec3 a_position; +attribute vec3 a_normal; +attribute vec2 a_texCoord0; + +uniform mat4 u_worldTrans; +uniform mat4 u_projViewTrans; + +varying vec2 v_texCoord0; + +void main() { + v_texCoord0 = a_texCoord0; + gl_Position = u_projViewTrans * u_worldTrans * vec4(a_position, 1.0); +} diff --git a/android/assets/badlogic.jpg b/desktop/assets/data/textures/badlogic.jpg old mode 100644 new mode 100755 similarity index 100% rename from android/assets/badlogic.jpg rename to desktop/assets/data/textures/badlogic.jpg diff --git a/desktop/assets/data/textures/dirt.png b/desktop/assets/data/textures/dirt.png new file mode 100755 index 0000000000000000000000000000000000000000..29a20c3e39ad911d2de927888e4db190b7599c8a GIT binary patch literal 8453 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 literal 0 HcmV?d00001 diff --git a/desktop/assets/data/textures/grass_side.png b/desktop/assets/data/textures/grass_side.png new file mode 100755 index 0000000000000000000000000000000000000000..7df7c8fcd7152fea480aa4cd10d195d0bf09dc00 GIT binary patch literal 9693 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 O0000MU?95f>T(hseSnXT=0@-C` zU}ym01D6b+3@4{ezgT4g#RD#x_`g|Iltyy3>vTh{rot<-|!EdjsJi*{R7_o4|vNz;BEha zd1G$@KlWgrhkwIL3JPkc6;w_uEAUngz=~>MCI9QQHF|g*fQ#3M=o4yUH>~o zRD5k@5AYl4E8nkm;VlB+KVW{KdpsHr0^wTsTMv19yx||P;BR=1R{mf8hy#57-|(H2 zYXgB%c>h-aX+6MTyb)I^kn@mD8#Zj*uzu6VjT<*_-n3=gzU|w#ZrvulXYbB^A_v7p zMGhW5EPhPxgt&yv(Zh#Ns-KckP*hP-5j&x&qoJfNr>vsH>x6If=FQu-ZWG$RT}bK3 z;Uh}_zpvHTklnyW@d08bApE=e*6rq7eGd@>^IXrfb$mRTT)Ti039R3+ant54TLD7# zE(qY%I(~t5>(>ha()q%9N+z&-{hlL=XE*FMciSl8zfb9ULiVPk=gQv*T6Fw4rtBVY zWAm2%2ZV$VN*+IP@|2W{s+zin=IQf#`UV#+8X8$zS=-p!**m~IJiXvoyb#Vy%(LB^f38R%H!0ur_XY7^YROx7gkhORoCEO*1mfC?tNnu=|l6!&aUpB z-p_sg17E)lkBpAdzmHGM%+CFsXDuwUmw0sX==|&Yw{-0Wbny!atP|MCql=Fp3x3w^ z7Fd5oal@Xo<{RDo_ev;T-?Z;sLU#F^%}13jeh9h;bZpswOy#TO43D%m%KpC*cH@6U z+24fyi>?94wsm}9@z(8zKp|iK9GhuP=;*A?x(i|@_V=*#4EM@shbjjeB8>;LvQjd=(mGGlb zZ4bKv-Vy^N_Llg~X$=eBkA0MrI5@x#jR>Rb6vjLs9nKg_oc-L=KS$SO*jx$??PPt~&3kqb?V4j~r7 z4OopP+NAydRmiv&F$$^kJ+C(N(bK-J6bo8B6(+`roG-l1c(j76Yf>I4akXP}U72bO z@(+4vW}X^ZJ%%pU`@DVN$ti@I@GLQOav5qC;=G5%(IT(VQ^)+chhf62kb{X!;SH`W zS@qn9qrG8FHns^$S%pm6>cKV6CkwVR+-hf`1Jp&!d?yCI_xU|+Ej$ZS_)oPuLSdRZ}Kg%_90n1o6q_$?EA`vn-Hbh{`eL)`ZKY!_&k~wPCL#RS}YLYtU{uM7P6(KZx|x< z_hp%0YxkaLfQPx4e&EbBDOzLb^?M?Ilv=!uilC(nkrCtXMO|m$x;^XPhqC5kyq>F) zlH!vz7YYieADa7(KWVzz%9Vi)q@s6H+4Z3|F^?!SbHk!NZO-Fbn21$~PUOv1NSXej z7URBx#^%0pKToM0-TDp#ycq6y)FnIoF{^Ec8dwLx*^!b0J5wIPig0$Y@qu1G^nTX(SvT{!v1? z@8ri`3AG7>ex(4z0(R>nfzYbPm@)xPW+2HCeq z|GBK8!^1QYVk7SD3*7nUXz(imhszjv|GcU0T7pDGPm!Xbd^z z7~_ervG?(|Wx#XOn){5<2ETNFie{Tmi8dKXbCI>=EV>EJw383lLRywP$kX68Qu8<1 zqHwLsc$7o?oOVM$xn7F{=Vq=#W>z8GYCWg4igVpWG>pzz85@KzqOImeIb+54IB4V# z2C3elCF^I3N`0?IUFJP`agG-`-D{B5&NFOS6ll_HL|%yQ_^&cdzQtB@A6&a7B_{$u#sIc(VDCavC}!7Q(K z#h6}Pe?-@ED2C&O3)+}kImRo6FTjVw3#$i z7tOFc&OI)`N=-+NK7H9h=vC-MZg1xVoo)Yn?wJAQSCuwnh} zS~hi$xJcbF*g&aH)PN#~N{9ptR@@ym70kvnSxt(-zCA^Eoq5U7UxoC{Os+^D`8Maz z6Wg2?RvZVzRo!1qM9ck_xbNqQb4fm8Ki{oF#K1^a{$_OeXp_!F@_Zgmp5Bh8jN7J| z%_?)K{i_hTSZ_%{ZlKQQOX-A&>OItHa`RGmi63!sCLTdJ%=0Z)(m~rdsAaE0E)i## z+-f)DvSG3BH1^(ANQol~)kR;Cx_t*%*}5`~j{myE>FKC^l%1V*oVu(*sy}_jA3wGt z?RBxCCq5lX^BqeK_Gg*k?5=Nw3!e);ip^)Dvqk zj7pgeSy(bZNr?^s)*Jc`KU07_@cECyY#)C*itQhREjq@IU>CFf)M4}$X@iescq*rr zF49nK@^<-y$^rO*7K5_b9ndm1%oBsw8p4`4Ffa^j^^XbdexvSjC~0sxJ(R98?9U}l z+8jZtV}%;6Uy5O8@>QNr^*-shSl>^`pbHjsupiTfidA3DqG#c{^F=Cll(~q9-IA?4 z(fqwS>425a9_Hai+6)RKW2~_1F~f|4r>O?PKThwTzEs0C1u@M)p(;H&o(kN60A3WM z>jWFB<-B9n_EP-k=(;^N2DAP&RX=7#TRe4|%I%fPNlWRU0pS;Mfb_GtK6&6`j#t$+ zlB$eK@zfg^#uFUtf#Jv>Kr9PCN5V+W z#K;E4_*IBAZ2z}+RtK#~OSF_OVsCE4%@x=>=?? z$6#8;F4x#B*D(5$waR^lJ+S1!9A2KVSSkBB>@~R1j*jk5Xy}SlV=N*f zi3?e{ck@Mf+1R>}?(T;UqjwoF9rzp(gdtDAE|=87HJ=YmPA&3c!A4tqE)AE`($8E| zE6bK(wCt^|sF>wdNbdPyZz7!Mv;w7%bNfj3o~_#T^>gRa@4J^Du8Hu12FHY2O5BX# zdHd3pvR3Xk*wAwoPGr=4QQW|^8r+#X2@e~q@x72bhG~M9cmY5G$Ha)yDqjPi&15>!&%lxw9qXm2`oU22r zFTW_xfzBYQjA(rDel_&uz$=L!^^Z}{*H@)4_{X@H1m*-aY32*ptU`7~9(??fdCthD zBy%~$>cuJ~XPPTQjI{=g9Vj{GsN9Zb*g}IU(rga}9cN^OEEMKBVO9{619UOy_~nu; zCfhqE)Vi_MvCqcYu+=g0KJ>O^4-QwkkdC3(Ahbfs%Gl|d7;K57^9AH8gbL4}iJUKb zw7roqZ6VH)PgoAEWJF)22!Bibs@spxOh+>_I>s2>!}Ott&!nTyogw-#D^bH4-K-K; z_%f0jkI3COgp2@cQ|#c#=5YN8{uCAC)C&*w%s5k+M$;5gg9v9z{fr?!821iXljCBT zJT=U@TGKD=^iY^;5$wPcIlT+tTTvR-+WZ7d+*{+I6&65Y}BVyDs5u3_&u1*N>$Is-xyw5lUT$@g%Veo!N#;`EM zT-4gb;P$5C1^U8cQZ=G&XMfEy1t02O>Of(qbHiXFg+0p=@RWANESk}Y6DOG4%a2sg zErfCW8ELlzS0Uw*EzTf(?r&0DT<6eY`NfZzb9(2sBM zai6A4hjHtRaEW2C(G^5h!KeM77qa?t6H!&LQJ%3{PaRW>V1BN*G$tQ~5~#Q^i@*`e zsC3HnoEq1kU8@k0yo=h)kvnKjPj7Q6gxGZGVV=FPDZVxb-8pH}7BrZ6?$1f6%Dp`XdW`XvWvI&t{59Jz`F$+`)kPfxEqbq4E4^uxn!m$Kt(qE2~k{5RZ|#RUWKC z*JPEb*HYt?gcb^w$0J;5G`J>Lj9ahcSGT;(V^eBDE>meh)D?xubc_gffAXSoPMbUg z6JpHgc=J>MM08qZL3?E09rAHKkLPT}&7o-c8pW7ZNUS-9X&N`o2xepafc3ecwG+g&bYouIWEZ zw(EYLYJigo7%iAko7Y5*{cL3L3iIod&G-9lyj-QGY~PnO&*mWMcbqnAxiu46SvfM# z{8{2ypq+_RLud7*pW>K8ffIM?@FsssZnzy^wI<@7reSUM<;Lz@v(zSZ{G_e*t4|rW zuZ~I#T|y3b=2!a>ICQ~?P0RIzbX6DB*W59IfgoD{GA#)+g(a2fA-S~WLu#Qs*`K%C zEuWg@A1(jKEDOYNq1MdlKPgG0e$0&C%wht5W_+l^BqenfBC8nBLJWk}79<*J-M-zR zRo6g`%)KDv;-w2rT-izy>IZO*XqG>6QOk$pI(^?4YBUK+k$qkyF;2jN)Z<+3C~#@H)i*EW(+<9VIZ6{4tfrdOx%0J3IaUr6Qy(|p7Xe&Qc;RT39hIDq2+9!!b~{~& zglN?9RmyDT)GWVj3hnMX&Zz6Ysvk>JAGguZPhGx7s&>ve_AJ!SQ5X~Tkw()fz0;$+ z3eioDlCdX2bG@5}Ky)DGF~$CT8E9T@6r4DkvVE z!_LIO>Jj;@ME?6{S+3ux1d3o$=zdJtP<=zP!x-&X>EQa)*>d319MprI^tao5=9o3J zmx=N^c(?|z|E>6VuW57!ru5ZjWkS4B_BD{=_cyiGF0>=E?W;#@RTFG9>ZX=~pgL#r z^v^X!?%@XV%0OPbA|!EAIpt*MGjX2pM_;3+CC7nfs~r`vT3gQqcmY-LqyZJ?URjV`Y;RG4(fjD{ zfJsEsNV%F`8;!Es7K5J<6YD-5FE?~8Nl-(vGmFen92va1tc5l@Mg&T<$_$oNMtqc?Xzw< zR&eBTG|ymP>?%`r=%gLuqD;GsOE7QWSE!pxIU6u_U7IIq<2JE(fcIa8#C=vTl&5Hy zVtmOB==dL{uXf$+{kpH_^wHx(v=VfY&sv;>aBvD=g(P*=TW85~fMvev-HT}C?C zeps_8VIs7WgIf*-IhEBAt%aA|S^Ko0jsknB$%yXEENrYrT6{*ky#1^T=T-AAo1xZH z6^be}DsN7=Yj*fh=n8^bXGfh2!4ykwRr}=YZU`TNEu;fCnvc_`;#ZEYLJornu*)Mw zgB|Jcxe8T<0yZeL_kOBh?eXwBEo|6OX5qwnI(-Z*nd)IyXbpGnbG6q1h%`eiEBy)I zbyGG~#aGZ5IQYo&_(}7kaNJ4>?Y4=3DU-sDje#$M(pt}9@6Tx#H%*xZ`x(Pj0?r6e z7^wV%$U!oxQ~mMZ*7Ew|bP}a9-l3oiWw7CGP3uCN&1}sA`Kwh4ynPjt(pB&Kh(-}A z5qTCQJ}>=FEE%YDq6f!j2*X%LTQk#FT!&Yr8V5OQVYTg{o&7_@*ulb2(_HyZ95M{J zjp%1GS*9B8SE`01zd97yqZL&>{U@Qx%bMhRhwA$btzYpH-X_8ect2srWe0th$ug4~ z*ViPSs`B~q$6l<93s@vgQb=l-##o+0a3pZHR`J0snFwaYDkO}TX#z%#t9RR3wo=;_ zEp(U(yp)3(T`oz(#U~+YVLe(Jb#2STLJWIporA)rTJc&?P*!z(l)$F2n-m8MsbcaV z;4RIx3ww7;M#2jnZ{g~*bV#}>Zt zmup0^E-h0QLSaJr18pD?0XgwK`34#eEDN_6ja!9SoB3~`@-mXBaI2f{#;It0yvw|0 zI|-JuqG+?jLQDr%4F|gnputA z?bfHR^W+542pKRzgft2Y)ulG{7h)bI&@?4k-4o)YjOfy#q!~u~ws}-QX;^ ztmU6YSL$L1r-5=5H#4~%_=Ql+Dx^BCGb32Cm37{6Lh@05>?)-8Cs)3#+E<5^%8NdW zsk&WlbD;1AY7ZqWS>kLL2&}v+ixV>+RBe*wk_lrxpJaek>!l86*|Y<$S>~zD8D|+y zX3N(mYdf-*`?g+1MJD#8V??6f?Pm-Q|0sOm2*;9_ ztgsF#eXNMdh~-tte#Q8ALq%6oxVAV>F&#A%9$sW^SS4x@UdQ!frU;QjdMavX@yn_0 zTD_jhq|7m1ac~9Em>#SJYP1d?w_f$?wiQE=Tkxm`w3XgTq3=mo)dtX_rZlwxem|4iyN;8BQ^5rHorG5BIYx{^R_KBtpzs9w-Tf5vju< z1k81PMAHEBTXZa3Guu!dbBEgZT~7BiVWb~V(`?)9N2k*%@xHyVvi|aAN8*;=u6%MT zkk_T2e#di2pZ7F(@}UK;5NQ=sn*EB%!H}uG{W#!R7DH`yadNoEuj+oxD_44`N{iet}Bc69Q~x**)n z95<`I-$nt+X3ydMLpDqt*q!Lm*QD+kIVX$bd4nG&1Z>Mvm+IE|qb+PKk{lLdb(t~@ zB3N_jH*@^R1sNmlVr<*R=amg;8}W2dL3d6MpUddpG=vFte`r}hbuj4_lBDW&6t9|& zQXk^Qbqk7Yt>AX_!1GeakLNs{-Tj8lT2?@8Wb{m%O_}9ZSF%vbyn1X-Y(~$C>3j8? zKC&}sqKgkqQ5TTQ(zdN+RBvvr7=p5_g=VH*HN#d4r_BXlW212)k?Ertu&q_y$p95J z!~6_3E^5Beyz9*O)4~y87t_=>5`(gB zt_+1Es&D5fkA<<@wZakaE!p?^5*ndB za-g^x!P>gJWq)f}Ke_sfBh`;O8-gtmf5nMlCV91D*FulyauTyF;0~%a+dE(AzP_nh zFfFI<$M*kRuhdCqa_73LUDh=(w7~;&wrAf*$AfZ`3W?aD$go9@%(DD5#)`dXP;;71 zij+x*3l}g4cgT;j+I@se7a})KI>>KKi3fW;g*E;t+8ju%%>`Soz8DuDpNmM2=nH4Q zebS&g3(E217JX_o<#@A6W5;!UWkIk^T-`kPp#1SBa?0oW3!&k$IKn(v>dwXGL3B*0 z&3F#;la9ewvNYEo6igA*wC4UfxF*B?U~CpmdLgwvG+a8{(M+CK(yk3Cc%k&fOc|@u zc%>0l2?aG~LkYG9Gc7hqOrC2Ghw`>+<&VF4raM4ur}AcKp`u9wJI6N$r+Hra2`#JJ z$PgiMdr*tTGe%bEH?h2Up!*sY21@t`O>Emp)Bf=+;!;n};qK6j#h7d?hq*4oyZUA(VvpopMunN?ahfnk$r9S>$1G26?t_qMc_4V!z7t|zn0WUzCHD)E%OG9__4LlgvVyq&~EpAt%hS#N=B+gNZUC}IIM3SV}tYw-V! z@2nn0g}<3-?3D>4p8ygEst?vjkGJ=?c^hGd>(v9q!G>S8#NhLrCBbOH`aw>6+Ou^RGR@sFX?0*7#@8>pfIgA-uXalwt9{!3LBt zsc$$2G?3GUq@;q;9Wn@%`Z^kKPrY8Ke^ z{Kk=s@B>B97;`w3#xp4|4Hb`|BC)^*t(;Qb`7>UA5kseSrV9Pu2XPsmdd$X7gVfhi zUpgTBsgF-Mr-3)U5Uy(_I}Az9TKrjz(?Wsp?+6|wPWQp)O~89@2gJ!G4)IXc^+sP&lQ* z)%0gl%NU5L;zQE5LZz`_Lm1JkZs>IB*-9#b>lisqTnXu=0F||lZCZtV1$!M!q`03G zR*z;?#!&vB(ZO1}PIR4#A_@aYz9nOLb^)F7E!(Gl74jw~^fOeJCHeH#yGmZ**5T9E z2jWw!CpgBT24@1;UC8zJVL5|@o&h#WEgbJj@4HB47#6jFJzP0O0rT56FOPE_cd)^IcU*#ZbQ{Pi z`|Zojy7|XT4o!a2Mw_O^<3aAeP;`6bmP)uhjtFX#B6B9xgy(_KWQu0d{&Kd~uZ=5F zQ&5^ME(?oSUI?v>|3)e?y5GP3sith*VAvw5+WM6!vc0d(@!rym?vlu#RzOb?ZGvn|X12QyT4Q;;(5cco%*edGn z7K_8*GV=$)?j5ggoM@b}Oe`_>mhW4bAx3BogDvd&ZjIV}H@k3BGaf`>LDH_!k8Bp$ z$X>GfS@*3{Z|K60X>x%xwHbyAm?WnD}?Tu>VXOg~##s$E7}vhl}8=;@FU7useCV27#%p#*Cg25+UjaCep0nX}0gwHadP zeylS8u52hdrwjR4Q@p9T6^ONpBA59xnS26c^{NFOfRDaqFe^qhjdN)d7+acWg6@;TPKL6(}ao{ zx;k9A2G|A)v@}ckgbm-WISqDfN2mmy8LNA<^>Y>~Sza1VQjT}g__2A0gOqo5%S*}d z4MiwMj5Q`5>{VgGUX{zbHddppo&U0HuE|Bx6yaWxFMI>=3#uFgu*R z!~JpSw66XF$#A}=fz+uLjUvACf#PQ{ZL4@u|28*^-dB4?%aLS_z!SMLi{?)HLxK{!Lub!5dN22B2JW%eQaxj#i{57|$@``c_@(^w4 zwX1G0AJ0H>cTc!CQb&SGAWDdPd+12ms+uU6Ts`l3#rtANfTv}MsTC~52d3#E0o4`P zzIOVW-&H@)KsWJge!fWb>1#R?Yn`74Fz>Ovg!mdtppTA(9e4@&JSxCbTt!YrPC*vD zK8;b50DS~_c%8P;Gx*&D_@pE8d#YG0Rt~EyhYEnpD{5+L$}1?zD=EnW3|VwAGSKas zEE0Y6uO9R~(XasTtAXAqq&TlfH+NJ}ppFC>e{Evm8<_qz@ZfjXyw7VLqXRwU4Z#N$ zKnOsP2XD1%$SNqwDrxfO{);HTt0pFYxBR#K^Yi-~8y%>R`PVrA78`99eAQFl!V`@O z3V?a)V?2?8NB#wqk$b^WLrg8=uE8xVPWcHEbT{ zUsxWnzj3Yx1^BLg?*Wtd^!4-ugQG!@ihtvRc7G%P+v)Q<1spl8hk^z1nj7lg(Id9ODo0poqf~KaDtg4c#o2-hPriQGBqLPNJrm}{bmzSyn%*#{x zul8mE-av5OeE&HsUOyh7A5{-!B~1l2MOhCO6_~6FY^@6q1z9B}PY(^4hk}NxlA44# zkCms-UN+Q`P?A&l{qeG|Tc8&zz)wfwk~cEw+V7`U-hQ5zfo?oTDXOX}fVXiq)s&SK z6;+ire`DBq2B3i`^19-^_AVjr0XuB~`f&rI;qB)J_moFm^@Oj@{q*?&Pq#o+fE5bm zt0VFEyYf82{w=kqFQH&=Jjq_e^z`_xH0Rvl@&J_o@3H=$-&kHjVUhnYt^dOLtL@o< zKrAZ2$1K3i9pMQJ{BK(SSFFFf9ZGa%YRt;zwm+U;DLX8 zqJMP#_Za^H{=R67h#LGnZR5A$n7wkm3>Xeudyz)?l> z*BQRQ&XWC4?`voH{-=%qYPZUTT>IDL{})1#)wkgEAmj|>%sM`BaPF_ugNMM;N!~fT zUkB`Xzro2t{&gGqHi08};D9s#+8MmRzXcx!)yJtR8a4sS`PTFIO#P83h`vO;us;T?YLYQI(OEP%k!w0LAf<}V`k+5& z>Q;N>b4aXvO?RR23EZcPTl1zRuD{k?eyKX%Jfkyrc=wNYJ#863_ye5YRyJ;PJ=UjH zcj1x$%blkaf1F>1JR5Bi&lPbzsnC=7irJv%b2npb;73sDmC2-sW=R`zWF^0yOpQ#V zb;`1=@vmPezz@!L@-9C9-ADE)Le@!~HCH<4w%5Wx;d;4yc0k3~HLAg? zLiyrPWpE!N1F~+MmR3%6E403;m`wOgzc)L&x!go4rZ1-;Z%^4P{NBz-n#yNI9~Dnm zXJrZMLou(rq;E{5c`~@LLtD%tF;jb)Th>X*2f6^-<@pQKC(s3vDU9YTCN_oQvlIzkh42O{Ua?Fnl-wxLrclsrF4!_Dh)gWdWn{umRWorK_Q|6L#kA-0w>x(Y56wwj<4I!nn11@7H+b=B? zmY(c6py#an`LgB*eEj|sqW2u^Gxe%3zlWDKMnm$}CJ;`HTxv@UlD8Xv3HBy+st<3WVOt28{9qTyY2AG_B^^eU=%txRdty348U-N&>ZtJU54tJ)LTkS)4@kg&kssd6(FA1zIe{4$-iY zjBh!318%0)Ko%+-8a4M;IF`AeIxgMhoZ$v`htSnMr7Z*l>;9H2i)Gs0haSCM+;yc+ zx9eK%Gr{|w*0#P^V-3n?4_%NP<4WH{;L5CU>PTm9sOXiVXYtQE+++_rZ}&{-!7cU| zHtbj+b<)v0{PauD%K5%|&+qiou+Tv=ukAx;kNm#Vh0S}O5kps8+G@+R1>(GlClb;K z(M=DThR7`|bkmv>MHI118!aE}2O(0r)AldHi1*Hgo0nZE%{1pLmTX+2u-EPT_3 z`slr7Z(>Se_&Bl{Fd`>+17E-oE{mI6}a$0>QzaTiI0T)|OO9e7+&`hkrOT;qdB zFSWM&YQG$raGqovAi<%vCaP#QA{!pF{M>GS!@g&Fdc~}Cb(<&)U0D5reW{Ce1ed`L z@~2j;Zy&fPJGS$RYWk;8op`IB&FqB4lP5NHosfIcwD%1uP+qwpz+&r*BRa1-s?9sA zHk|Khfc@-Eml<2hk%fOWNME13E!UyrMq7pEiAj6EKg9eFj7Zz)$H z%Y78_&&89=J#np(Uy^>5b-owO=;$JE!v>na*j|_zKYC&M`IGq_7c{qYJXyZuJ@7SRcZhv`UQcS@ z;o*_)-sr@H58ECuO{!fcp1;U_a~XRwuC!%h``#NHKa?lzsP)f_y1%ov!l9s*I`2Ap z43TIkfbF++kuI@!SO}g&G0t~wK6`DzK%RPjPYt%;^-wV2 zkp6N&{U4bv&!pE~IC$f7RAxHs%L~h!(e#-B*4+mlIh`#`y(=B}FK6EEjc(H&V?}Cj zSJ@2jBqrXu_KonwU=Uw5@u8%5*nZuz4mLnDV_q+bXEf z+Bdk-rYR)lXl|z9bFTtto0<5F=gI0M`3L!u<=XQ~5jqi%=lvJa=_}C&HPrmRw%0qD z3K!Y2QVr)N%$YI8T?4Pk1^u_xl%~BTKWtTch}?Yj%=!pz!G|jTkG@}7e>(WY$z$rM zr=cA|SG}tCyI)JBlx68j$6(c{(c>_RZ3^pr{$Ci66-0I@;I|jK_n{e;12%e zqf@0G9*8z4_}&YWiAIVw3J3LWWG8Mn;(K<`B83|Da^*~^DJrZh(?!|4dB?@-a&zi# z!3lxRs`CND5R6R0zze?M!uTx`4==9MG})G#YGHn4p5&e+NT&+ks@hgLH^XiG@Xf8@ z{?o+B?;nbr6jSWSis3D%J5t+=)kb_@W+Ipa1IZpaulrkH!L8LU7iezBq@w(;xv6f- zrH;4ZUwZZfAY_NCW8^k%jQ<4*%WeAz{fNS0d1vYy31aI3Kz*msxwEU{# zUR}>dIQr8I>tp*SrB6TCOGoz)o;7t+CwFzcnDw7@(uVi%sHi-xP(?955I_;n2tOCk znCUKdy?(e$T4u=V!+ZKk+k?}lgq1L=Q@CsNKx)9P#EIipk7Vv?j0d=gB_@B+yRCIH z>Jda-pg?kRrTeK+@%>6DL~$Z0?>nRSZV{5*i3(Ph>z&+Ir>mSyDoXURlAY$W5^9c* zc^IuDMJcR|9fRkdXgnhk$_be%aFwx+a;Vw*CM&wj@1dXIDT~Z+NmBzk>R!abiQ+nx zV#}o+duxPK52+0JNLdGB?q*sknN??0y2ji7@v2;3TeKnKa7Z-f;>V85`X6s6?Dupu zFH}9#&?c8BNm z(U%{sbH3}+e(+UIJ4xR>YOl@(JC|y&ozN|Jooa^KhX!hj;e`oBkV2x=-IU`)YF}P( zjG@!n5#L4&gdO|Sz4}vG2a61gJ8Fc|)RDSS%ylT`W0zC2q`IV0XpDzot2ynSw+q!i^kOajx*K;2qrq*FO~uzYB=A3Q~LXbQSVPow@Uk0@Sld$nYDw4b2xs z28c&J`(J#&o?_6cT6Mv2aDBE)=1Jp?Q<2I+L0{Auj1OYFo&5)|^NX4ey-tv_@Ri$p z$1})&*M~v^|E^F$`q$;oo{Xc8pF}$PmiA5)?c7ui^hRUIw`@%ASp>iHbAG1x;cA`v zwBaPeN@h}F)6XwgivN5Ns1tgWKj1{zr1I&Zr1@}Kl6$OvPopy%`EmWc)wW%bi>^@{ z<;=92?B(Mh;Pqb#bi}AP2TFZO6MjFge@3;V>Zm7lFMqL;XYA?C!wVi%r&O61>pffz zXpd1#AWQ0%@~yAwU*Gi~|CC>VT_3*n@_uK%KUe6DvOpDP69rB|PiQx9k&9)c5k?oY zYa_iLkz%jAI+JG|t&g{RPEjl#Pz3xyKKu5>jW?hLC-Z7>!{^3Uy}0@Crq2P(svz*wcB%H z=ZdFGxNpXdoAEq<4ziy$f6n{8mKE^+KFS_}U;bQC>6r34^Yv#ff2Tnkp!|pP(hhtp z_qy&ldnmdf&oJ(R9oOJG@s3`W<+0cXOaob%dpb?Zm;sGR`f;kn+&sM5mQot}o!u9@ zx&B8vV}^91_MtK&w9i&tvCJ#JNOy>B$@0SH@Wo$!YX8U~VEvf-44fJCDw5AD``w=< z3;v_;?~OQQJhY!g;V)C4ns~saBxRGfE=Md?&P>!DV~?Gfh_NW86WS!>Y}xC&@Co=WySglakaX9&Trt$=XLoF4oEpg#|xbP;ruJ zs@-&ZOSP7JT=(dvx5JJMQe{qx}!cdSM8%kTE7e~42e zpL)N#Oj6G{60=1LJw{4cNWczJY+C8iwnIpO0-TlC0DMO5>a0rvXyCLujP%KHaJ`f-L_ zgRTdZS*@0ie(#~?X%(r8t*1LfJZ`EMTx~y?VG7+mDQpAIg6N}v~$->!_2Y=>L-pxiWC*>Nz)wg`!iQln5p7%=WBh@g`+lGLI@Ex@%N+ic z{kqEb&f(EJA`Qovv1;9gmn}+ao(56xKr04B6#NHFHz;UeA}mc-9!TzZiz3A;Y@M9k zCYK#hkneCf?aTCj11lkDl{?GrmhpaB)+ojNj?LT>-#+aGzvejOX&aGErwq#8 z@c40$wF703XrOhHQR29&;#8Y+rpC<|0Xi!k(H75TjFBInzB2CC4ESlAi+3lx&h*-3 z#r#Ae%eAIxUQX^8P;6+k_#0%aWzvUh#DhoMQZeAgcyO}&<5m6>eHL!ImyMHbt8b8E zuLx_4KU%t3ku9mO-(sfxV|vg1r+hQD&;-2^$6{HH=HzVqWJcy$ox4VhPJect|C8^- zFvdWj#T0tX#!f(H+aRKAiFN9gIHOIDxIF7g%GeNVmRlrvIQ7hTp>suLx1Sgky!qqR z?xNTXa>i*3W6iRiWi9oa`4h#{f>N^1Ae%&M$;=T2e)qdN34&EB?$5Rb6cpWd;?G^5 z!G<0mMD|BMxK>*4bvxw`!;G-+B}8zjQA~yqzj;Ho#>2>SJ8#Jxn>rTjaMHazb&6%J zg(!9v-*L3j)5p*~)*PH62>OJPR>qwQTW7%vDVEqZ9eCAM9iF(ZD@Q@ zMIU>N5_@e;`*Lxn$36I@bD2(Na}9&E$6}p`xG+=Qzjx|@%&qKUoflF4RVpa!G(W>{ zG1`AtQ)EpJho|}OR6pf%24Q}SX|>Mz`*?4ZJl>`xTU=A>z#sqasJ_ zbHAQ_vMwap#;u0(U<;qieyu(3N(70?So46T+jEz&8a3Jvi+2^##G!USjrO zV)X4DrJBc;aALMz(=y4%8$@5PLSzU6S%b)W!<*LjC(UOPRv!FB=IO0J|Ec{(==P`& zvwQqMxo(x*kgVG{a69?Va2Sq{ziovjexu7=XtIBP>7M8-1$6%NrP(jRo~kk=nZgK| zOZ_^@%>kAUu~G?Jzj<@tB-)k3HG33i4-A%t`Y*n2IPgMA#Dx1A;(zd4)H^MljnLy| z7o(#$9#&XmbPDDQR{m6-RJ@4WoLoeojMKgRk{0Emiu2x*h%RaEPO)_@>b~To7YT_! zI{Y|AM1EgJoN>_1W$pSJv*PpS`n$*ns$aX0KorlK|5f3G9(nes+mrCv zb;Tz{twO~|D`xez4nO!)NMHKK=T(h`99W4;tMb!!ikSNl=S7pFJN9EUtIbEnke> zgOTN1jCfP+>+$1QpZwVXZ;?H3o$~eH_x5GE3_m%)=?y~O{>JN~#|P#LBytSTlrV%B z%s;NIZ-4D111nLJnL=$w1)LpvIcOKtnKSORG`q)3O`Ib1rhk0IwCxxL~E5z`^NEe(6-`Yyfw1~GnMX)pc#!cBj*_h>r}X4ut(w+@{+q%F29-70lo z+UX70r#8{Fx2MssrplWQWb!t1M&zkocW>?goW(Rkq-UB36_0A zzS`;BV^|=pPZrz0xlPk3m$Kj6M?~K*Bt6may7Z*-_)Ty9Ka#vQP7mEsxGOPw?uUk{ zv4C>Qru5vNt4~hE&fj>XUh4bDkM-5v0w#xoj&9P*6*#iI9eT*L!MgiS1i3HTW6Q2B zKi2)RU+`-3L|*dO&7U$mCChOtF=pCH@?{)7q?zp%`B zot_+7-SwG%xLoqylln(d2q2z^cK=oV|4Tl9iKp8y`Q+7NcR}a|i7q()|0{n7fcOO_ zW6bIyO15aM2!TLxh}b90JS`WB?fG7=wr) zsB{2?nVMQA5F69uO0aSuu)wWwf{-DWBq^o{s4t$VIJBrjXi2j8F<(_wL>gBF`?Ud% zQxt4yf|=@$;s73lpql}p#E5K3N3-}0BawJiDu|R&Ze>++@F=0i!qS1tnnM$hXg=V& z+es8vC%PoS6{5m)3Q#smFDR2CpH-!38j!10?%uzvJX-GtQNy!4j6-7>vAQdDIp8dmC){HwAk2oF3!f$`S?N$_CMgiry2qaZI+1xYhlJ20#ZL{LB?LXLz*RHBO!)P5aEKsrQt z5hyxEvnqfDw5Du0lmwJZkp=@2;wNGNiv%G^3y4TpylFyOU68F+jv#{_G>{8Ose1hZs183K=oAK)^LW0E21dSAiyh0aF5$D}#&}pj8>R0jMF`8`S_{kpS<; z$Mk&x(4w%?CM*tu6}}(;!~hu)0RaI40RaF200000000000TBQpF;V~800;pB0RcY{ zJRvaYP)0$Yl;G{fCqXW2Np$9=x7`_2X9gv+t%;ahUjWP}W zLZXu>^*A)qX<#8hL?90}WW=Fkv5jtc06<3}iz@~r0$}=>G?Xi)FN^R1RC)RAwsDMw z_T35r?E$tJO!(k#isKm5c}EMdjljto>6 zZ!7A#>$ncno*Ont#q~xd=~(dg5q3#9&K*m7U^u;KMY|&mqWV{)6uzek5^NC}um%#J zs2eqgkDdoX5!-@+8E=J1QNyPf=xtgJFrF-cfPh#g&=a&q%jzQuA`vI&ggQVaHS1y_ z2IN54Z41?CBhoGAatA1cmny*}p$k`JDwUBvBO-z(dxXp?qRB&w?(gd0z{N07cmN4) zYVb;f=eXMrDno=7aHJqgD%RyozTDC{=b;1&${`Z#KvrnPshi+Yx5)Ckqf?D`kYxc* ztm-X_0qs@EdejJjgDc530%gL?*NRkh=0hb*NZLBoAX9`3fIX-Z3Z_|!Wsy*1E`$&m z9SY#pvZa8=3SC7543Vgq;k?iP!~h!*0RaI40RRI400000000000RRypF%Usf|Jncu z0RaF3KM+)}28J?>HEfX^eUF$NOF3ul?5hH=0D+YyP3HAgv273K?p)bQ%a zU`GPWmX?`wr=f!2FBRCLr>V=RRwp3neAvXb3z56WJ9bPP#l&et4}Vh52E+p zosh2E0R>;{3LadmmPm%EZSpEMH=OQ<3|AvHQHTEko5)D-SGo~>Xi@ZOjI4IH5g7Aa zRa_!odyq4b4-#d!U^%+j-iR?#YqHI<{XUn5b4J843RMK{CLayAFO~O*~OD$eC2)JR&sA7$}eb*+Vjx!vFvP literal 0 HcmV?d00001 diff --git a/desktop/assets/data/textures/stone.jpg b/desktop/assets/data/textures/stone.jpg new file mode 100755 index 0000000000000000000000000000000000000000..91ac66a7b2ca94c751c0f59f5a7be3b886b95327 GIT binary patch literal 7504 zcmeHMS#TUj8Sa@qb=Z<@+1O%ZuSSk78_n)qdrf&!bjBMjOOZqlo|v8KmDb+fSEWK4+8(L^$@xP z+G2pw1=k*)uc9G4`cCUQ|Sd`X#4!bo1(X8S`F zKp{Hzx%CORhRQB)Mv6x5o;CP{`ARwCLI#0q!!*o2;==$Wm(QJtWF80G@GckIzS54K zDDY_)n?wLg*#2v@uO84D>9O$>G=ajwU?>;}heDx_j&Nsp|F-U~uI{}%cJ}mNH?V)- zbpw$|^g!%Tlo=U{M21s`M>t-Rr2U67*|cypCQ1TPLUnX>ba!>{*|u$uFc=vW-f(Gr z1NFfgMS-&nqWdUcAJupY?FTypWUZq}PTB<~kv|X&g*!UCfbe)Pf=Kyjzb_E*gX`2C zWRm&&0y_rzvEa^|l@N2fU%2!9gW;j^N1xa=|MW`-#Jq8~qjUFL_Us+F{@|hE!$+h< zGL_EA6O&WZHy+E~w6OTjTW-DW_IIfoE-Wn)RhcABokxzW`Q=k6)7an{3i(mTkSHAk>H=p{}x4-k8B;Vp zk7KG{j@OlHoR4vFbab>{Rn$}1istcBv65x}@U^cq(V~`RZcWT^Gt~*aTs(Hhzzb(i zEUITtsTqwKeS7q1U9Oj_Wo#+Ydbw0F<$9K}mCJxhbDW9V6zf!$xeZ?VCUgTwrI-}s zSa?}p6&TQAXa#wGa@y4ZcUi_YwN|UeYGO<`mg0OSlZkUeTo71bu;yCDQtE8Q9P%_w zVpBDWRja61qC}&T*H^481O3~E!4q|=4h^nqa&Id(EiImd8wnf%LLA;<(kv&iLWbDx zI90CB%rqr8j9G`b6Ky-QXVI8Lc%N-Ga}3Ln!@I}6wfN0kdQKYNl>M{ zr!7}8Ev2Gjq7C%Nil8ZxS5q2R6RfHfFe`}(iOr-79Gff@G(N?P37koJ^0P(}5?3j; zTSfF}M2{v487|4Qnk1>LqzY*^BWfHg2v|$28kbH8NhV4{DUZ$NvWyVp+}pX5Vik0w zoMny|D=T%kb+K5+3zk9x#U~OH&+}U!G;N`NK}zc4inW>c^dR6kQ&9Z zvV`L&t9Z$_U7j$oV(G@Bu9vb*b7w>n+s#_}xUMQBvu!5U+(|R8EX4uFH)p-}$-=T; zt6W9e<9M=ThE>yzQ?tfw{v=kdO{A}6dGhnHo|u-gmfOtiR}q}dItCKDvF7%*fKR)q zRE*lwOIB18jx1v;t5{>)Ms-=KEMZu(Ae9|jaf6&nC&aXpDI{4wlghACUP-ZODV=B2 zij>fj33ye@!{9sere3gWih;+LAkATHU~1XB*66UE4Tn8mZ5e|xZ{v8G;}|j~WCi+9 z7|R#5q@t*47IU1$N}5_=6(Ln%6UlrAD+Q&HC=@&+-l(yHXKb8U>jarBFEF!P@h5AK zoFfUluu`p-ir8okik*BL5?YOJZf`2odTz^1=+!lt$II4it+H`fS1@e3<3$x$OnpP+ z+MdBA)LP#Yu2EwpFR5X~V8xe9kVdcuv9Rw@R!SC3#AZ2a$Es8WQ5!k3@hkM&58J+y zJU)ES5!n3NY*XFrV+(9WU@HP!5!i~rRs^;p@V_2`*2WuG;MKJT+v>*e(A=E2hl+|Z z4yDI)GvrhiiWs5msIwK72%SP<@)HUtaeM?0=xIbp=%c8M=Os~0!KO2L3?9 zJy-4Z^}+%7BeS1-HKBRe0}A?kUn7p*4dP)?N(E?gqTb)PF#(RFN2%8%&`rXoT?9v+ hE;c1lql1*^js5EeIJ9xOilx0*v(zEHjv+v}^e?}6U^)N* literal 0 HcmV?d00001 diff --git a/desktop/assets/data/textures/texture_atlas.png b/desktop/assets/data/textures/texture_atlas.png new file mode 100755 index 0000000000000000000000000000000000000000..0c2262100ac367d28a39cee046891f5bec000f29 GIT binary patch literal 60803 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 literal 0 HcmV?d00001 diff --git a/desktop/assets/data/textures/wood_bottom_top.png b/desktop/assets/data/textures/wood_bottom_top.png new file mode 100755 index 0000000000000000000000000000000000000000..c161de979264b515da9bdf7c2efa621ba738af0e GIT binary patch literal 10998 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 TJby}900000NkvXXu0mjfU5G$V literal 0 HcmV?d00001 diff --git a/desktop/assets/data/touchscreen_controller.png b/desktop/assets/data/touchscreen_controller.png new file mode 100644 index 0000000000000000000000000000000000000000..74e0a3b1ec42c0d8e3be5729fa6140960b0f05ef GIT binary patch literal 29114 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 literal 0 HcmV?d00001 diff --git a/desktop/assets/data/uiskin.atlas b/desktop/assets/data/uiskin.atlas new file mode 100755 index 0000000..d1f3db6 --- /dev/null +++ b/desktop/assets/data/uiskin.atlas @@ -0,0 +1,200 @@ + +uiskin.png +size: 256,128 +format: RGBA8888 +filter: Linear,Linear +repeat: none +check-off + rotate: false + xy: 11, 5 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +textfield + rotate: false + xy: 11, 5 + size: 14, 14 + split: 3, 3, 3, 3 + orig: 14, 14 + offset: 0, 0 + index: -1 +check-on + rotate: false + xy: 125, 35 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +cursor + rotate: false + xy: 23, 1 + size: 3, 3 + split: 1, 1, 1, 1 + orig: 3, 3 + offset: 0, 0 + index: -1 +default + rotate: false + xy: 1, 50 + size: 254, 77 + orig: 254, 77 + offset: 0, 0 + index: -1 +default-pane + rotate: false + xy: 11, 1 + size: 5, 3 + split: 1, 1, 1, 1 + orig: 5, 3 + offset: 0, 0 + index: -1 +default-rect-pad + rotate: false + xy: 11, 1 + size: 5, 3 + split: 1, 1, 1, 1 + orig: 5, 3 + offset: 0, 0 + index: -1 +default-pane-noborder + rotate: false + xy: 170, 44 + size: 1, 1 + split: 0, 0, 0, 0 + orig: 1, 1 + offset: 0, 0 + index: -1 +default-rect + rotate: false + xy: 38, 25 + size: 3, 3 + split: 1, 1, 1, 1 + orig: 3, 3 + offset: 0, 0 + index: -1 +default-rect-down + rotate: false + xy: 170, 46 + size: 3, 3 + split: 1, 1, 1, 1 + orig: 3, 3 + offset: 0, 0 + index: -1 +default-round + rotate: false + xy: 112, 29 + size: 12, 20 + split: 5, 5, 5, 4 + pad: 4, 4, 1, 1 + orig: 12, 20 + offset: 0, 0 + index: -1 +default-round-down + rotate: false + xy: 99, 29 + size: 12, 20 + split: 5, 5, 5, 4 + pad: 4, 4, 1, 1 + orig: 12, 20 + offset: 0, 0 + index: -1 +default-round-large + rotate: false + xy: 57, 29 + size: 20, 20 + split: 5, 5, 5, 4 + orig: 20, 20 + offset: 0, 0 + index: -1 +default-scroll + rotate: false + xy: 78, 29 + size: 20, 20 + split: 2, 2, 2, 2 + orig: 20, 20 + offset: 0, 0 + index: -1 +default-select + rotate: false + xy: 29, 29 + size: 27, 20 + split: 4, 14, 4, 4 + orig: 27, 20 + offset: 0, 0 + index: -1 +default-select-selection + rotate: false + xy: 26, 16 + size: 3, 3 + split: 1, 1, 1, 1 + orig: 3, 3 + offset: 0, 0 + index: -1 +default-slider + rotate: false + xy: 29, 20 + size: 8, 8 + split: 2, 2, 2, 2 + orig: 8, 8 + offset: 0, 0 + index: -1 +default-slider-knob + rotate: false + xy: 1, 1 + size: 9, 18 + orig: 9, 18 + offset: 0, 0 + index: -1 +default-splitpane + rotate: false + xy: 17, 1 + size: 5, 3 + split: 0, 5, 0, 0 + orig: 5, 3 + offset: 0, 0 + index: -1 +default-splitpane-vertical + rotate: false + xy: 125, 29 + size: 3, 5 + split: 0, 0, 0, 5 + orig: 3, 5 + offset: 0, 0 + index: -1 +default-window + rotate: false + xy: 1, 20 + size: 27, 29 + split: 4, 3, 20, 3 + orig: 27, 29 + offset: 0, 0 + index: -1 +selection + rotate: false + xy: 174, 48 + size: 1, 1 + orig: 1, 1 + offset: 0, 0 + index: -1 +tree-minus + rotate: false + xy: 140, 35 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +tree-plus + rotate: false + xy: 155, 35 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +white + rotate: false + xy: 129, 31 + size: 3, 3 + orig: 3, 3 + offset: 0, 0 + index: -1 diff --git a/desktop/assets/data/uiskin.json b/desktop/assets/data/uiskin.json new file mode 100755 index 0000000..9b301b0 --- /dev/null +++ b/desktop/assets/data/uiskin.json @@ -0,0 +1,70 @@ +{ +BitmapFont: { default-font: { file: default.fnt } }, +Color: { + green: { a: 1, b: 0, g: 1, r: 0 }, + white: { a: 1, b: 1, g: 1, r: 1 }, + red: { a: 1, b: 0, g: 0, r: 1 }, + black: { a: 1, b: 0, g: 0, r: 0 }, +}, +TintedDrawable: { + dialogDim: { name: white, color: { r: 0, g: 0, b: 0, a: 0.45 } }, +}, +ButtonStyle: { + default: { down: default-round-down, up: default-round }, + toggle: { parent: default, checked: default-round-down } +}, +TextButtonStyle: { + default: { parent: default, font: default-font, fontColor: white }, + toggle: { parent: default, checked: default-round-down, downFontColor: red } +}, +ScrollPaneStyle: { + default: { vScroll: default-scroll, hScrollKnob: default-round-large, background: default-rect, hScroll: default-scroll, vScrollKnob: default-round-large } +}, +SelectBoxStyle: { + default: { + font: default-font, fontColor: white, background: default-select, + scrollStyle: default, + listStyle: { font: default-font, selection: default-select-selection } + } +}, +SplitPaneStyle: { + default-vertical: { handle: default-splitpane-vertical }, + default-horizontal: { handle: default-splitpane } +}, +WindowStyle: { + default: { titleFont: default-font, background: default-window, titleFontColor: white }, + dialog: { parent: default, stageBackground: dialogDim } +}, +ProgressBarStyle: { + default-horizontal: { background: default-slider, knob: default-slider-knob }, + default-vertical: { background: default-slider, knob: default-round-large } +}, +SliderStyle: { + default-horizontal: { parent: default-horizontal }, + default-vertical: { parent: default-vertical } +}, +LabelStyle: { + default: { font: default-font, fontColor: white } +}, +TextFieldStyle: { + default: { selection: selection, background: textfield, font: default-font, fontColor: white, cursor: cursor } +}, +CheckBoxStyle: { + default: { checkboxOn: check-on, checkboxOff: check-off, font: default-font, fontColor: white } +}, +ListStyle: { + default: { fontColorUnselected: white, selection: selection, fontColorSelected: white, font: default-font } +}, +TouchpadStyle: { + default: { background: default-pane, knob: default-round-large } +}, +TreeStyle: { + default: { minus: tree-minus, plus: tree-plus, selection: default-select-selection } +}, +TextTooltipStyle: { + default: { + label: { font: default-font, fontColor: white }, + background: default-pane, wrapWidth: 150 + } +}, +} diff --git a/desktop/assets/data/uiskin.png b/desktop/assets/data/uiskin.png new file mode 100755 index 0000000000000000000000000000000000000000..c1e5f1a210e11a24ba2065e93e665839852b6aed GIT binary patch literal 28299 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