diff --git a/CheckersClient/android/assets/Menu/1x/Rocket_Small@1x.png b/CheckersClient/android/assets/Menu/1x/Rocket_Small@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e9d27e2379eeedbcfd0e27531e7c4aeefc9514 Binary files /dev/null and b/CheckersClient/android/assets/Menu/1x/Rocket_Small@1x.png differ diff --git a/CheckersClient/android/assets/Menu/LobbyPlayTransition.mp3 b/CheckersClient/android/assets/Menu/LobbyPlayTransition.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..704fec6dd367e3de9ed0785ec5a11f598201fd78 Binary files /dev/null and b/CheckersClient/android/assets/Menu/LobbyPlayTransition.mp3 differ diff --git a/CheckersClient/android/assets/Menu/LobbyPlayTransition.mp3.asd b/CheckersClient/android/assets/Menu/LobbyPlayTransition.mp3.asd new file mode 100644 index 0000000000000000000000000000000000000000..107da36ee1ecf8194cf68d1a17ad7a71144ddc3e Binary files /dev/null and b/CheckersClient/android/assets/Menu/LobbyPlayTransition.mp3.asd differ diff --git a/CheckersClient/android/assets/Menu/PostLobbyLoop.mp3 b/CheckersClient/android/assets/Menu/PostLobbyLoop.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5b4c91bef411aeb95b82c4c4fa88898865a246f3 Binary files /dev/null and b/CheckersClient/android/assets/Menu/PostLobbyLoop.mp3 differ diff --git a/CheckersClient/android/assets/Menu/PostLobbyLoop.mp3.asd b/CheckersClient/android/assets/Menu/PostLobbyLoop.mp3.asd new file mode 100644 index 0000000000000000000000000000000000000000..5c7a5744db7e1e8c4f983a87d5c338072e558506 Binary files /dev/null and b/CheckersClient/android/assets/Menu/PostLobbyLoop.mp3.asd differ diff --git a/CheckersClient/android/assets/characters/AsianGirl1@1x.png b/CheckersClient/android/assets/characters/AsianGirl1.png similarity index 100% rename from CheckersClient/android/assets/characters/AsianGirl1@1x.png rename to CheckersClient/android/assets/characters/AsianGirl1.png diff --git a/CheckersClient/android/assets/characters/AsianGirl2@1x.png b/CheckersClient/android/assets/characters/AsianGirl2.png similarity index 100% rename from CheckersClient/android/assets/characters/AsianGirl2@1x.png rename to CheckersClient/android/assets/characters/AsianGirl2.png diff --git a/CheckersClient/android/assets/characters/AsianGirl3@1x.png b/CheckersClient/android/assets/characters/AsianGirl3.png similarity index 100% rename from CheckersClient/android/assets/characters/AsianGirl3@1x.png rename to CheckersClient/android/assets/characters/AsianGirl3.png diff --git a/CheckersClient/android/assets/characters/AsianGirlPortrait@1x.png b/CheckersClient/android/assets/characters/AsianGirlPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/AsianGirlPortrait@1x.png rename to CheckersClient/android/assets/characters/AsianGirlPortrait.png diff --git a/CheckersClient/android/assets/characters/Grandma1@1x.png b/CheckersClient/android/assets/characters/Grandma1.png similarity index 100% rename from CheckersClient/android/assets/characters/Grandma1@1x.png rename to CheckersClient/android/assets/characters/Grandma1.png diff --git a/CheckersClient/android/assets/characters/Grandma2@1x.png b/CheckersClient/android/assets/characters/Grandma2.png similarity index 100% rename from CheckersClient/android/assets/characters/Grandma2@1x.png rename to CheckersClient/android/assets/characters/Grandma2.png diff --git a/CheckersClient/android/assets/characters/Grandma3@1x.png b/CheckersClient/android/assets/characters/Grandma3.png similarity index 100% rename from CheckersClient/android/assets/characters/Grandma3@1x.png rename to CheckersClient/android/assets/characters/Grandma3.png diff --git a/CheckersClient/android/assets/characters/GrandmaPortrait@1x.png b/CheckersClient/android/assets/characters/GrandmaPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/GrandmaPortrait@1x.png rename to CheckersClient/android/assets/characters/GrandmaPortrait.png diff --git a/CheckersClient/android/assets/characters/HighSchoolGuy1@1x.png b/CheckersClient/android/assets/characters/HighSchoolGuy1.png similarity index 100% rename from CheckersClient/android/assets/characters/HighSchoolGuy1@1x.png rename to CheckersClient/android/assets/characters/HighSchoolGuy1.png diff --git a/CheckersClient/android/assets/characters/HighSchoolGuy2@1x.png b/CheckersClient/android/assets/characters/HighSchoolGuy2.png similarity index 100% rename from CheckersClient/android/assets/characters/HighSchoolGuy2@1x.png rename to CheckersClient/android/assets/characters/HighSchoolGuy2.png diff --git a/CheckersClient/android/assets/characters/HighSchoolGuy3@1x.png b/CheckersClient/android/assets/characters/HighSchoolGuy3.png similarity index 100% rename from CheckersClient/android/assets/characters/HighSchoolGuy3@1x.png rename to CheckersClient/android/assets/characters/HighSchoolGuy3.png diff --git a/CheckersClient/android/assets/characters/HighSchoolGuyPortrait@1x.png b/CheckersClient/android/assets/characters/HighSchoolGuyPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/HighSchoolGuyPortrait@1x.png rename to CheckersClient/android/assets/characters/HighSchoolGuyPortrait.png diff --git a/CheckersClient/android/assets/characters/HipsterGirl1@1x.png b/CheckersClient/android/assets/characters/HipsterGirl1.png similarity index 100% rename from CheckersClient/android/assets/characters/HipsterGirl1@1x.png rename to CheckersClient/android/assets/characters/HipsterGirl1.png diff --git a/CheckersClient/android/assets/characters/HipsterGirl2@1x.png b/CheckersClient/android/assets/characters/HipsterGirl2.png similarity index 100% rename from CheckersClient/android/assets/characters/HipsterGirl2@1x.png rename to CheckersClient/android/assets/characters/HipsterGirl2.png diff --git a/CheckersClient/android/assets/characters/HipsterGirl3@1x.png b/CheckersClient/android/assets/characters/HipsterGirl3.png similarity index 100% rename from CheckersClient/android/assets/characters/HipsterGirl3@1x.png rename to CheckersClient/android/assets/characters/HipsterGirl3.png diff --git a/CheckersClient/android/assets/characters/HipsterGirlPortrait@1x.png b/CheckersClient/android/assets/characters/HipsterGirlPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/HipsterGirlPortrait@1x.png rename to CheckersClient/android/assets/characters/HipsterGirlPortrait.png diff --git a/CheckersClient/android/assets/characters/MrServer1@1x.png b/CheckersClient/android/assets/characters/MrServer1.png similarity index 100% rename from CheckersClient/android/assets/characters/MrServer1@1x.png rename to CheckersClient/android/assets/characters/MrServer1.png diff --git a/CheckersClient/android/assets/characters/MrServer2@1x.png b/CheckersClient/android/assets/characters/MrServer2.png similarity index 100% rename from CheckersClient/android/assets/characters/MrServer2@1x.png rename to CheckersClient/android/assets/characters/MrServer2.png diff --git a/CheckersClient/android/assets/characters/MrServer3@1x.png b/CheckersClient/android/assets/characters/MrServer3.png similarity index 100% rename from CheckersClient/android/assets/characters/MrServer3@1x.png rename to CheckersClient/android/assets/characters/MrServer3.png diff --git a/CheckersClient/android/assets/characters/MrServerPortrait@1x.png b/CheckersClient/android/assets/characters/MrServerPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/MrServerPortrait@1x.png rename to CheckersClient/android/assets/characters/MrServerPortrait.png diff --git a/CheckersClient/android/assets/characters/RegularGuy1@1x.png b/CheckersClient/android/assets/characters/RegularGuy1.png similarity index 100% rename from CheckersClient/android/assets/characters/RegularGuy1@1x.png rename to CheckersClient/android/assets/characters/RegularGuy1.png diff --git a/CheckersClient/android/assets/characters/RegularGuy2@1x.png b/CheckersClient/android/assets/characters/RegularGuy2.png similarity index 100% rename from CheckersClient/android/assets/characters/RegularGuy2@1x.png rename to CheckersClient/android/assets/characters/RegularGuy2.png diff --git a/CheckersClient/android/assets/characters/RegularGuy3@1x.png b/CheckersClient/android/assets/characters/RegularGuy3.png similarity index 100% rename from CheckersClient/android/assets/characters/RegularGuy3@1x.png rename to CheckersClient/android/assets/characters/RegularGuy3.png diff --git a/CheckersClient/android/assets/characters/RegularGuyPortrait@1x.png b/CheckersClient/android/assets/characters/RegularGuyPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/RegularGuyPortrait@1x.png rename to CheckersClient/android/assets/characters/RegularGuyPortrait.png diff --git a/CheckersClient/android/assets/characters/RocketGuy1@1x.png b/CheckersClient/android/assets/characters/RocketGuy1x.png similarity index 100% rename from CheckersClient/android/assets/characters/RocketGuy1@1x.png rename to CheckersClient/android/assets/characters/RocketGuy1x.png diff --git a/CheckersClient/android/assets/characters/RocketGuy2@1x.png b/CheckersClient/android/assets/characters/RocketGuy2x.png similarity index 100% rename from CheckersClient/android/assets/characters/RocketGuy2@1x.png rename to CheckersClient/android/assets/characters/RocketGuy2x.png diff --git a/CheckersClient/android/assets/characters/RocketGuy3@1x.png b/CheckersClient/android/assets/characters/RocketGuy3x.png similarity index 100% rename from CheckersClient/android/assets/characters/RocketGuy3@1x.png rename to CheckersClient/android/assets/characters/RocketGuy3x.png diff --git a/CheckersClient/android/assets/characters/RocketGuyPortrait@1x.png b/CheckersClient/android/assets/characters/RocketGuyPortrait.png similarity index 100% rename from CheckersClient/android/assets/characters/RocketGuyPortrait@1x.png rename to CheckersClient/android/assets/characters/RocketGuyPortrait.png diff --git a/CheckersClient/android/assets/characters/atlases/AsianGirl.atlas b/CheckersClient/android/assets/characters/atlases/AsianGirl.atlas new file mode 100644 index 0000000000000000000000000000000000000000..debabc38439c4510fd41d931d5b955a72abdeb7e --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/AsianGirl.atlas @@ -0,0 +1,27 @@ + +AsianGirl.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +AsianGirl1 + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +AsianGirl2 + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +AsianGirl3 + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/AsianGirl.png b/CheckersClient/android/assets/characters/atlases/AsianGirl.png new file mode 100644 index 0000000000000000000000000000000000000000..834312feba24f0fe6f6142fb1c7ecb2b2cdbd443 Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/AsianGirl.png differ diff --git a/CheckersClient/android/assets/characters/atlases/Grandma.atlas b/CheckersClient/android/assets/characters/atlases/Grandma.atlas new file mode 100644 index 0000000000000000000000000000000000000000..1a084ad67529e47762553fd9e92ac58a66e5c004 --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/Grandma.atlas @@ -0,0 +1,27 @@ + +Grandma.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +Grandma1 + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +Grandma2 + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +Grandma3 + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/Grandma.png b/CheckersClient/android/assets/characters/atlases/Grandma.png new file mode 100644 index 0000000000000000000000000000000000000000..342d2659e65061e3c0d9cf29f0b53b75da3c93f1 Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/Grandma.png differ diff --git a/CheckersClient/android/assets/characters/atlases/HighSchoolGuy.atlas b/CheckersClient/android/assets/characters/atlases/HighSchoolGuy.atlas new file mode 100644 index 0000000000000000000000000000000000000000..cdc11ae7fde2968e0048587db8eec439405fdc27 --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/HighSchoolGuy.atlas @@ -0,0 +1,27 @@ + +HighSchoolGuy.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +HighSchoolGuy1 + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +HighSchoolGuy2 + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +HighSchoolGuy3 + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/HighSchoolGuy.png b/CheckersClient/android/assets/characters/atlases/HighSchoolGuy.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d83af4b5c71213da483f1f1bd6879c0e0d4bfa Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/HighSchoolGuy.png differ diff --git a/CheckersClient/android/assets/characters/atlases/HipsterGirl.atlas b/CheckersClient/android/assets/characters/atlases/HipsterGirl.atlas new file mode 100644 index 0000000000000000000000000000000000000000..812d4b63b58a03ff0863bb88c67fffec14928fdc --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/HipsterGirl.atlas @@ -0,0 +1,27 @@ + +HipsterGirl.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +HipsterGirl1 + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +HipsterGirl2 + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +HipsterGirl3 + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/HipsterGirl.png b/CheckersClient/android/assets/characters/atlases/HipsterGirl.png new file mode 100644 index 0000000000000000000000000000000000000000..7e327a3d37d15eb057cabc3132022614a31090e4 Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/HipsterGirl.png differ diff --git a/CheckersClient/android/assets/characters/atlases/MrServer.atlas b/CheckersClient/android/assets/characters/atlases/MrServer.atlas new file mode 100644 index 0000000000000000000000000000000000000000..22634838e5edd5776d625c3951e4cea3c0b6ac11 --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/MrServer.atlas @@ -0,0 +1,27 @@ + +MrServer.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +MrServer1 + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +MrServer2 + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +MrServer3 + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/MrServer.png b/CheckersClient/android/assets/characters/atlases/MrServer.png new file mode 100644 index 0000000000000000000000000000000000000000..01b9caa2dd9000a6de9da33afe8c6333e7d7fdfc Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/MrServer.png differ diff --git a/CheckersClient/android/assets/characters/atlases/Portraits.atlas b/CheckersClient/android/assets/characters/atlases/Portraits.atlas new file mode 100644 index 0000000000000000000000000000000000000000..4fdafb10149606cb41a0547680022e1098e29e33 --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/Portraits.atlas @@ -0,0 +1,55 @@ + +Portraits.png +size: 4096, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +AsianGirlPortrait + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +GrandmaPortrait + rotate: false + xy: 1004, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +HighSchoolGuyPortrait + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +HipsterGirlPortrait + rotate: false + xy: 3008, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +MrServerPortrait + rotate: false + xy: 2006, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +RegularGuyPortrait + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +RocketGuyPortrait + rotate: false + xy: 2006, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/Portraits.png b/CheckersClient/android/assets/characters/atlases/Portraits.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5cee4297be4a591288ec538df02d0bbf7d4236 Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/Portraits.png differ diff --git a/CheckersClient/android/assets/characters/atlases/RegularGuy.atlas b/CheckersClient/android/assets/characters/atlases/RegularGuy.atlas new file mode 100644 index 0000000000000000000000000000000000000000..8f20f19e2bf494bd46187ba0626ed6dad60452ff --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/RegularGuy.atlas @@ -0,0 +1,27 @@ + +RegularGuy.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +RegularGuy1 + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +RegularGuy2 + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +RegularGuy3 + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/RegularGuy.png b/CheckersClient/android/assets/characters/atlases/RegularGuy.png new file mode 100644 index 0000000000000000000000000000000000000000..51663f9086c9cd73424b588861394414de9169a6 Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/RegularGuy.png differ diff --git a/CheckersClient/android/assets/characters/atlases/RocketGuy.atlas b/CheckersClient/android/assets/characters/atlases/RocketGuy.atlas new file mode 100644 index 0000000000000000000000000000000000000000..5346f98324ad83171824f8a71b431a2db46526e2 --- /dev/null +++ b/CheckersClient/android/assets/characters/atlases/RocketGuy.atlas @@ -0,0 +1,27 @@ + +RocketGuy.png +size: 2048, 2048 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +RocketGuy1x + rotate: false + xy: 2, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +RocketGuy2x + rotate: false + xy: 2, 2 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 +RocketGuy3x + rotate: false + xy: 1004, 1004 + size: 1000, 1000 + orig: 1000, 1000 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/characters/atlases/RocketGuy.png b/CheckersClient/android/assets/characters/atlases/RocketGuy.png new file mode 100644 index 0000000000000000000000000000000000000000..180b8a67cd98d7307de04b23dc614302a0bc00c4 Binary files /dev/null and b/CheckersClient/android/assets/characters/atlases/RocketGuy.png differ diff --git a/CheckersClient/android/assets/cinematic/CinematicMusic.mp3 b/CheckersClient/android/assets/cinematic/CinematicMusic.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..704fec6dd367e3de9ed0785ec5a11f598201fd78 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/CinematicMusic.mp3 differ diff --git a/CheckersClient/android/assets/cinematic/Cloud1.png b/CheckersClient/android/assets/cinematic/Cloud1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb442086e41ac13f3d197451b242476abc628603 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud1.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud2.png b/CheckersClient/android/assets/cinematic/Cloud2.png new file mode 100644 index 0000000000000000000000000000000000000000..d8d8f87a79786cf74944a9c239b4e3df44ad61fd Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud2.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud3.png b/CheckersClient/android/assets/cinematic/Cloud3.png new file mode 100644 index 0000000000000000000000000000000000000000..725e50e800545898e797867124e41a582aa74d66 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud3.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud4.png b/CheckersClient/android/assets/cinematic/Cloud4.png new file mode 100644 index 0000000000000000000000000000000000000000..44fa2cb62ce53ba0cbacd0880c2b8ff089f16c91 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud4.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud5.png b/CheckersClient/android/assets/cinematic/Cloud5.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df1e05b20bd497d3764050a53190f8838dcb02 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud5.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud6.png b/CheckersClient/android/assets/cinematic/Cloud6.png new file mode 100644 index 0000000000000000000000000000000000000000..cc424ea24795d11cd34f19e489e1232a19100aa6 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud6.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud7.png b/CheckersClient/android/assets/cinematic/Cloud7.png new file mode 100644 index 0000000000000000000000000000000000000000..e3db6a487c35fbf3887f431cc01c901d1ce08cc2 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud7.png differ diff --git a/CheckersClient/android/assets/cinematic/Cloud8.png b/CheckersClient/android/assets/cinematic/Cloud8.png new file mode 100644 index 0000000000000000000000000000000000000000..f2d6563a67fa7a8b8188212fa1c9d07160340c7a Binary files /dev/null and b/CheckersClient/android/assets/cinematic/Cloud8.png differ diff --git a/CheckersClient/android/assets/cinematic/atlas/Cloud.atlas b/CheckersClient/android/assets/cinematic/atlas/Cloud.atlas new file mode 100644 index 0000000000000000000000000000000000000000..6e046584814de1c6217ef17b82aa8532b549d379 --- /dev/null +++ b/CheckersClient/android/assets/cinematic/atlas/Cloud.atlas @@ -0,0 +1,62 @@ + +Cloud.png +size: 1024, 512 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +Cloud1 + rotate: false + xy: 2, 205 + size: 299, 280 + orig: 299, 280 + offset: 0, 0 + index: -1 +Cloud2 + rotate: false + xy: 303, 238 + size: 280, 247 + orig: 280, 247 + offset: 0, 0 + index: -1 +Cloud3 + rotate: false + xy: 2, 11 + size: 210, 192 + orig: 210, 192 + offset: 0, 0 + index: -1 +Cloud4 + rotate: false + xy: 727, 316 + size: 117, 169 + orig: 117, 169 + offset: 0, 0 + index: -1 +Cloud5 + rotate: false + xy: 585, 315 + size: 140, 170 + orig: 140, 170 + offset: 0, 0 + index: -1 +Cloud6 + rotate: false + xy: 846, 373 + size: 111, 112 + orig: 111, 112 + offset: 0, 0 + index: -1 +Cloud7 + rotate: false + xy: 214, 94 + size: 109, 109 + orig: 109, 109 + offset: 0, 0 + index: -1 +Cloud8 + rotate: false + xy: 214, 2 + size: 80, 90 + orig: 80, 90 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/cinematic/atlas/Cloud.png b/CheckersClient/android/assets/cinematic/atlas/Cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..c1478599adc99e6c2d635dac8b4038deba2282e2 Binary files /dev/null and b/CheckersClient/android/assets/cinematic/atlas/Cloud.png differ diff --git a/CheckersClient/android/assets/cinematic/atlas/CountDown.atlas b/CheckersClient/android/assets/cinematic/atlas/CountDown.atlas new file mode 100644 index 0000000000000000000000000000000000000000..6648bd910a9a2617c548643a3d97c6f08ea4e1cd --- /dev/null +++ b/CheckersClient/android/assets/cinematic/atlas/CountDown.atlas @@ -0,0 +1,27 @@ + +CountDown.png +size: 2048, 512 +format: RGBA8888 +filter: Nearest, Nearest +repeat: none +CountDown1 + rotate: false + xy: 354, 2 + size: 350, 350 + orig: 350, 350 + offset: 0, 0 + index: -1 +CountDown2 + rotate: false + xy: 2, 2 + size: 350, 350 + orig: 350, 350 + offset: 0, 0 + index: -1 +CountDown3 + rotate: false + xy: 706, 2 + size: 350, 350 + orig: 350, 350 + offset: 0, 0 + index: -1 diff --git a/CheckersClient/android/assets/cinematic/atlas/CountDown.png b/CheckersClient/android/assets/cinematic/atlas/CountDown.png new file mode 100644 index 0000000000000000000000000000000000000000..fc91e7a03b368fda24e51f83dc032efa54c4147e Binary files /dev/null and b/CheckersClient/android/assets/cinematic/atlas/CountDown.png differ diff --git a/CheckersClient/core/src/com/mygdx/game/UniCheckersClient.java b/CheckersClient/core/src/com/mygdx/game/UniCheckersClient.java index ea4236b4da74e07d4c5d0207dc53d482bc40f553..f3cb846ddc82557b1a58e95d299c2172690fadd0 100644 --- a/CheckersClient/core/src/com/mygdx/game/UniCheckersClient.java +++ b/CheckersClient/core/src/com/mygdx/game/UniCheckersClient.java @@ -12,9 +12,14 @@ import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; import com.mygdx.game.controllers.NetworkController; import com.mygdx.game.controllers.PlayerController; +import com.mygdx.game.views.CinematicView; import com.mygdx.game.views.GameViewManager; import com.mygdx.game.views.LoadingView; import com.mygdx.game.views.PlayView; +import com.mygdx.game.views.enums.CharacterAssets; +import com.mygdx.game.views.enums.CinematicAssets; +import com.mygdx.game.views.enums.LobbyAssets; +import com.mygdx.game.views.enums.MenuAssets; import java.util.ArrayList; @@ -55,8 +60,8 @@ public class UniCheckersClient extends ApplicationAdapter { skin = new Skin(Gdx.files.internal("UISkins/glassy/skin/glassy-ui.json")); gvm = new GameViewManager(); - gvm.push(new LoadingView(gvm, playerController, assetManager, stage, skin)); + //gvm.push(new CinematicView(gvm, playerController, assetManager, stage, skin)); //gvm.push(new PlayView(gvm, playerController, assetManager, stage, skin)); } diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java b/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java index dfdbb501915317c049054cfdd6905e1b9d7ec494..b81be10ebd3bc8eadfe6d22d8d4e336dfd292add 100644 --- a/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java +++ b/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java @@ -1,22 +1,14 @@ package com.mygdx.game.controllers; -import com.badlogic.gdx.utils.Queue; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryonet.Client; -import com.esotericsoftware.kryonet.Server; -import com.mygdx.game.UniCheckersClient; import com.mygdx.game.controllers.commands.Command; import com.mygdx.game.controllers.commands.*; import com.mygdx.game.model.Lobby; import com.mygdx.game.model.Player; -import com.mygdx.game.views.tokens.PlayerAvatar; - -import org.javatuples.Pair; -import org.javatuples.Tuple; import java.io.IOException; import java.util.ArrayList; -import java.util.LinkedList; public class NetworkController { diff --git a/CheckersClient/core/src/com/mygdx/game/views/CinematicView.java b/CheckersClient/core/src/com/mygdx/game/views/CinematicView.java new file mode 100644 index 0000000000000000000000000000000000000000..139aa54ba420c5b53f88bf02a61c23744044bbba --- /dev/null +++ b/CheckersClient/core/src/com/mygdx/game/views/CinematicView.java @@ -0,0 +1,280 @@ +package com.mygdx.game.views; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.audio.Music; +import com.badlogic.gdx.audio.Sound; +import com.badlogic.gdx.graphics.Camera; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.scenes.scene2d.Stage; +import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.Skin; +import com.mygdx.game.controllers.PlayerController; +import com.mygdx.game.views.enums.CharacterAssets; +import com.mygdx.game.views.enums.CinematicAssets; +import com.mygdx.game.views.enums.LobbyAssets; +import com.mygdx.game.views.enums.MenuAssets; +import com.mygdx.game.views.tokens.AnimatedSprite; + +import java.util.ArrayList; + + +public class CinematicView extends View{ + + private final Image lobbyImage; + private final Image backgroundImage; + private final Image rocketImage; + private final Image exhaustImage; + private final AnimatedSprite countDownAnimationSprite; + + private ArrayList<AnimatedSprite> lobbyAvatars; + private final float keyframe1; + private final float keyframe2; + private final float keyframe3; + private final float keyframe4; + private final Music cinematicSound; + private float fadeInVolume; + private TextureAtlas cloudAtlas; + private TextureAtlas countDownAtlas; + private AnimatedSprite cloudSprite; + private float updateSpritesTimer; + private float updateAvatarFrequency = 0.120f; + private float timer = 0; + private final Camera cam; + + boolean onlyOnce1 = true; + boolean onlyOnce2 = true; + boolean onlyOnce3 = true; + + public CinematicView(GameViewManager gvm, PlayerController playerController, AssetManager assetManager, Stage stage, Skin skin, ArrayList<AnimatedSprite> lobbyAvatars) { + super(gvm, playerController, assetManager, stage, skin); + + rocketImage = new Image((Texture) assetManager.get(LobbyAssets.ROCKET_SMALL.path, LobbyAssets.ROCKET_SMALL.classType)); + rocketImage.setPosition(1556, 360); + + countDownAtlas = (TextureAtlas)assetManager.get(CinematicAssets.COUNT_DOWN_ATLAS.path, CinematicAssets.COUNT_DOWN_ATLAS.classType); + cam = stage.getCamera(); + cam.position.set(rocketImage.getX()+rocketImage.getWidth()/2, cam.viewportHeight/2, 0); + + this.lobbyAvatars = lobbyAvatars; + fadeInLength = 0.5f; + fadeOutLength= 0.25f; + + backgroundImage = new Image((Texture) assetManager.get(LobbyAssets.BACKGROUND.path, LobbyAssets.BACKGROUND.classType)); + + countDownAnimationSprite = new AnimatedSprite( + countDownAtlas, new TextureRegion ( (Texture) assetManager.get(MenuAssets.RED_CIRCLE_SMALL.path, + MenuAssets.RED_CIRCLE_SMALL.classType)), + "CountDown", + 3); + countDownAnimationSprite.setPosition(cam.position.x-countDownAnimationSprite.getWidth()/2, rocketImage.getY()+rocketImage.getHeight()/2+countDownAnimationSprite.getHeight()/2); + countDownAnimationSprite.setAlpha(0); + + exhaustImage = new Image((Texture) assetManager.get(LobbyAssets.ROCKET_EXHAUST.path, LobbyAssets.ROCKET_EXHAUST.classType)); + exhaustImage.setSize(rocketImage.getHeight()/3, rocketImage.getHeight()/2); + exhaustImage.setPosition(rocketImage.getX()+rocketImage.getWidth()/2-exhaustImage.getWidth()/2, rocketImage.getY()-exhaustImage.getHeight()); + exhaustImage.setColor(1, 1, 1, 0); + + lobbyImage = new Image((Texture) assetManager.get(LobbyAssets.LOBBY.path, LobbyAssets.LOBBY.classType)); + lobbyImage.setPosition(774, 192); + + cinematicSound = (Music) assetManager.get(CinematicAssets.CINEMATIC_AUDIO.path, CinematicAssets.CINEMATIC_AUDIO.classType); + + cloudAtlas = (TextureAtlas) assetManager.get(CinematicAssets.CLOUD_ATLAS.path, CinematicAssets.CLOUD_ATLAS.classType); + TextureRegion texReg = cloudAtlas.findRegion("Cloud1"); + cloudSprite = new AnimatedSprite(cloudAtlas, texReg, "Cloud", 8); + cloudSprite.setPosition(774+lobbyImage.getWidth()/2, 140); + cloudSprite.setAlpha(0); + cloudSprite.setOrigin(0, 0); + countDownAnimationSprite.updateTexture(); + countDownAnimationSprite.updateTexture(); + + setFadeColor(Color.BLACK); + stage.addActor(backgroundImage); + stage.addActor(lobbyImage); + stage.addActor(exhaustImage); + stage.addActor(rocketImage); + + keyframe1 = 1.05f*1.92f; + keyframe2 = 2.1f*1.92f; + keyframe3 = 3.15f*1.92f; + keyframe4 = 3.3f*1.92f; + + + } + + public CinematicView(GameViewManager gvm, PlayerController playerController, AssetManager assetManager, Stage stage, Skin skin){ + this(gvm, playerController, assetManager, stage, skin, new ArrayList<AnimatedSprite>()); + + AnimatedSprite asianGirl = new AnimatedSprite( + (TextureAtlas) assetManager.get(CharacterAssets.AsianGirlAtlas.path, CharacterAssets.AsianGirlAtlas.classType), + new TextureRegion ( (Texture) assetManager.get(MenuAssets.RED_CIRCLE_SMALL.path, MenuAssets.RED_CIRCLE_SMALL.classType)), + "AsianGirl", + 3); + + AnimatedSprite regularGuy = new AnimatedSprite( + (TextureAtlas) assetManager.get(CharacterAssets.RegularGuyAtlas.path, CharacterAssets.RegularGuyAtlas.classType), + new TextureRegion ( (Texture) assetManager.get(MenuAssets.RED_CIRCLE_SMALL.path, MenuAssets.RED_CIRCLE_SMALL.classType)), + "RegularGuy", + 3); + + int xPad = 10; + int remX = 0; + int remY = 0; + + asianGirl.setPosition(lobbyImage.getX()-xPad+remX*((lobbyImage.getWidth()-xPad)/4), lobbyImage.getY()-remY*(lobbyImage.getHeight()/7.5f)); + asianGirl.setScale(0.3f+0.025f*remY, 0.3f+0.025f*remY); + asianGirl.setOrigin(0, 0); + + remX = 1; + remY = 0; + + regularGuy.setPosition(lobbyImage.getX()-xPad+remX*((lobbyImage.getWidth()-xPad)/4), lobbyImage.getY()-remY*(lobbyImage.getHeight()/7.5f)); + regularGuy.setScale(0.3f+0.025f*remY, 0.3f+0.025f*remY); + regularGuy.setOrigin(0, 0); + + lobbyAvatars.add(asianGirl); + lobbyAvatars.add(regularGuy); + stage.addActor(backgroundImage); + stage.addActor(lobbyImage); + stage.addActor(exhaustImage); + stage.addActor(rocketImage); + + } + + + @Override + public void handleInput(float dt) { + + } + float cloudSpriteAlpha = 1; + + @Override + public void update(float dt) { + + if(startFadeIn){ + + } + else{ + updateSpritesTimer+= dt; + if(0<= timer && timer <= keyframe1){ + System.out.println("KEYFRAME 1!!"); + for(AnimatedSprite lobbyAvatar : lobbyAvatars){ + if(updateSpritesTimer >= updateAvatarFrequency) { + lobbyAvatar.updateTexture(); + } + lobbyAvatar.translateX(1); + } + } + if(keyframe1 <= timer && timer <= keyframe2){ + System.out.println("KEYFRAME 2!!"); + if(onlyOnce1){ + cloudSprite.setAlpha(1); + countDownAnimationSprite.updateTexture(); + onlyOnce1 = false; + } + for(AnimatedSprite lobbyAvatar : lobbyAvatars){ + lobbyAvatar.translateX(50); + if(lobbyAvatar.getX() >= cloudSprite.getX()+cloudSprite.getWidth()/2){ + lobbyAvatar.setAlpha( 0); + } + } + } + if(keyframe2 <= timer && timer <= keyframe3){ + if(onlyOnce2) { + countDownAnimationSprite.updateTexture(); + exhaustImage.setColor(1, 1, 1, 1); + onlyOnce2 = false; + } + rocketImage.setPosition(rocketImage.getX(), rocketImage.getY()+3); + exhaustImage.setPosition(exhaustImage.getX(), exhaustImage.getY()+3); + cam.position.set(rocketImage.getX(), rocketImage.getY(), 0); + System.out.println("KEYFRAME 3!!"); + } + if(keyframe3 <= timer && timer <= keyframe4){ + if(onlyOnce3) { + countDownAnimationSprite.setAlpha(0); + onlyOnce3 = false; + } + rocketImage.setPosition(rocketImage.getX(), rocketImage.getY()+50); + exhaustImage.setPosition(exhaustImage.getX(), exhaustImage.getY()+50); + System.out.println("KEYFRAME 4!!"); + cloudSpriteAlpha -= dt*2; + cloudSprite.setAlpha(cloudSpriteAlpha); + } + if(timer>keyframe4){ + startFadeout=true; + cloudSpriteAlpha -= dt*2; + cloudSprite.setAlpha(cloudSpriteAlpha); + } + + if(updateSpritesTimer >= updateAvatarFrequency) { + cloudSprite.updateTexture(); + updateSpritesTimer = 0; + } + //rocketImage.setPosition(rocketImage.getX(), rocketImage.getY()+3); + //exhaustImage.setPosition(exhaustImage.getX(), exhaustImage.getY()+3); + timer += dt; + } + } + + + @Override + public void render(float dt) { + stage.draw(); + stage.getBatch().begin(); + + for(AnimatedSprite animatedSprite : lobbyAvatars){ + animatedSprite.draw(stage.getBatch()); + } + + countDownAnimationSprite.draw(stage.getBatch()); + cloudSprite.draw(stage.getBatch()); + + + stage.getBatch().end(); + } + + @Override + public void fadeIn(float dt) { + stage.getBatch().begin(); + Color c = stage.getBatch().getColor(); + stage.getBatch().setColor(c.r, c.g, c.b, fadeOutAlpha); + fadeInAlpha -= dt/fadeInLength; + stage.getBatch().draw(fadeOverlayTexture, 0, 0, col_width*Help_Guides, row_height*Help_Guides); + stage.getBatch().setColor(c); + stage.getBatch().end(); + + if(fadeInAlpha <= 0){ + countDownAnimationSprite.setAlpha(1); + cinematicSound.play(); + startFadeIn = false; + } + fadeInVolume += dt/fadeOutLength; + } + + @Override + public void fadeOut(float dt) { + stage.getBatch().begin(); + Color c = stage.getBatch().getColor(); + stage.getBatch().setColor(c.r, c.g, c.b, fadeOutAlpha); + fadeOutAlpha += dt/fadeOutLength; + stage.getBatch().draw(fadeOverlayTexture, cam.position.x-cam.viewportWidth/2, cam.position.y-cam.viewportHeight/2, col_width*Help_Guides, row_height*Help_Guides); + stage.getBatch().setColor(c); + stage.getBatch().end(); + + if(fadeOutAlpha >= 1){ + stage.clear(); + startFadeout = false; + gvm.set(new PlayView(gvm, playerController, assetManager, stage, skin, lobbyAvatars)); + } + } + + @Override + public void dispose() { + stage.dispose(); + } +} diff --git a/CheckersClient/core/src/com/mygdx/game/views/LoadingView.java b/CheckersClient/core/src/com/mygdx/game/views/LoadingView.java index b2fb3310a276b52120e5c734d11b2054bf593da1..ffdadf1d75bd490ed8475a8f40941bdf80d37b19 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/LoadingView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/LoadingView.java @@ -70,7 +70,6 @@ public class LoadingView extends View { stage.getBatch().setColor(c.r, c.g, c.b, fadeInAlpha); fadeInAlpha -= dt/fadeInLength; stage.getBatch().draw(fadeOverlayTexture, 0, 0, col_width*Help_Guides, row_height*Help_Guides); - //stage.getBatch().setColor(c); stage.getBatch().end(); if(fadeInAlpha <= 0){ diff --git a/CheckersClient/core/src/com/mygdx/game/views/LobbyPlayTransitionScreen.java b/CheckersClient/core/src/com/mygdx/game/views/LobbyPlayTransitionScreen.java deleted file mode 100644 index 0b65397d8c7696fe14eac2083baf4e74cddf5407..0000000000000000000000000000000000000000 --- a/CheckersClient/core/src/com/mygdx/game/views/LobbyPlayTransitionScreen.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.mygdx.game.views; - -import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input; -import com.badlogic.gdx.assets.AssetManager; -import com.badlogic.gdx.audio.Sound; -import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.scenes.scene2d.ui.Image; -import com.badlogic.gdx.scenes.scene2d.ui.Skin; -import com.mygdx.game.controllers.PlayerController; -import com.mygdx.game.views.enums.LobbyAssets; -import com.mygdx.game.views.tokens.PlayerAvatar; - -import java.util.ArrayList; - - -public class LobbyPlayTransitionScreen extends View{ - - private Texture background; - private Texture rocketTexture; - private Texture exhaustTexture; - private Image rocketImage; - private Image whiteImage; - private Image exhaustImage; - private Image backgroundImage; - private ArrayList<PlayerAvatar> availableAvatars; - - protected LobbyPlayTransitionScreen(GameViewManager gvm, PlayerController playerController, AssetManager assetManager, Stage stage, Skin skin, ArrayList<PlayerAvatar> availableAvatars) { - super(gvm, playerController, assetManager, stage, skin); - background = (Texture) assetManager.get(LobbyAssets.BACKGROUND.path, LobbyAssets.BACKGROUND.classType); - rocketTexture = (Texture) assetManager.get(LobbyAssets.ROCKET.path, LobbyAssets.ROCKET.classType); - exhaustTexture = (Texture) assetManager.get(LobbyAssets.ROCKET_EXHAUST.path, LobbyAssets.ROCKET_EXHAUST.classType); - - this.availableAvatars = availableAvatars; - backgroundImage = new Image(background); - rocketImage = new Image(rocketTexture); - rocketImage.setSize(200, 270); - rocketImage.setPosition(Gdx.graphics.getWidth()/2+40, 370); - rocketImage.setOrigin(0,0); - - exhaustImage = new Image(exhaustTexture); - exhaustImage.setSize(col_width*0.6f, row_height*2f); - exhaustImage.setPosition(rocketImage.getX()+rocketImage.getWidth()/2-exhaustImage.getWidth()/2, rocketImage.getY()-exhaustImage.getHeight()); - exhaustImage.setColor(1, 1, 1, 0); - - setFadeColor(Color.BLACK); - stage.addActor(backgroundImage); - } - - - @Override - public void handleInput(float dt) { - - } - - @Override - public void update(float dt) { - stage.act(dt); - } - - - @Override - public void render(float dt) { - stage.getBatch().begin(); - stage.getBatch().draw(background, 0, 0); - stage.getBatch().end(); - stage.draw(); - } - - @Override - public void fadeIn(float dt) { - stage.getBatch().begin(); - Color c = stage.getBatch().getColor(); - stage.getBatch().setColor(c.r, c.g, c.b, fadeOutAlpha); - fadeInAlpha -= dt/fadeInLength; - stage.getBatch().draw(fadeOverlayTexture, 0, 0, col_width*Help_Guides, row_height*Help_Guides); - stage.getBatch().setColor(c); - stage.getBatch().end(); - - if(fadeInAlpha <= 0){ - startFadeIn = false; - } - } - - @Override - public void fadeOut(float dt) { - stage.getBatch().begin(); - Color c = stage.getBatch().getColor(); - stage.getBatch().setColor(c.r, c.g, c.b, fadeOutAlpha); - fadeOutAlpha += dt/fadeOutLength; - stage.getBatch().draw(fadeOverlayTexture, 0, 0, col_width*Help_Guides, row_height*Help_Guides); - stage.getBatch().setColor(c); - stage.getBatch().end(); - if(fadeOutAlpha >= 1){ - stage.clear(); - startFadeout = false; - gvm.set(new PlayView(gvm, playerController, assetManager, stage, skin, availableAvatars)); - } - } - - @Override - public void dispose() { - stage.dispose(); - } -} diff --git a/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java b/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java index c4ab7b9b318f2fdbcfd022b7fc8c832a3254a577..1fae377e59ff69f1ac755ae8ffb528aa3ceec3fe 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/LobbyView.java @@ -1,20 +1,18 @@ package com.mygdx.game.views; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input; -import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.assets.AssetManager; +import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Camera; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.math.MathUtils; -import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.InputListener; import com.badlogic.gdx.scenes.scene2d.Stage; -import com.badlogic.gdx.scenes.scene2d.Touchable; import com.badlogic.gdx.scenes.scene2d.ui.Button; import com.badlogic.gdx.scenes.scene2d.ui.Image; import com.badlogic.gdx.scenes.scene2d.ui.ImageButton; @@ -25,15 +23,16 @@ import com.badlogic.gdx.scenes.scene2d.ui.SelectBox; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextField; -import com.badlogic.gdx.scenes.scene2d.ui.Touchpad; import com.badlogic.gdx.utils.Align; import com.mygdx.game.controllers.PlayerController; import com.mygdx.game.model.Lobby; import com.mygdx.game.model.Player; +import com.mygdx.game.views.enums.CharacterAssets; +import com.mygdx.game.views.enums.CinematicAssets; import com.mygdx.game.views.enums.LobbyAssets; import com.mygdx.game.views.enums.MenuAssets; -import com.mygdx.game.views.tokens.PlayerAvatar; +import com.mygdx.game.views.tokens.AnimatedSprite; import java.util.ArrayList; import java.util.Arrays; @@ -42,6 +41,8 @@ import java.util.HashMap; public class LobbyView extends View{ private final ArrayList<Actor> playerUIWidgets = new ArrayList<>(); + private final Music currentSong; + private final TextureAtlas portraitAtlas; private Button createLobbyButton; private Button findLobbyButton; @@ -55,9 +56,11 @@ public class LobbyView extends View{ private float updateAvatarTimer = 0; private float updateAvatarFrequency = 0.120f; //update every 250ms private float refreshLobbyTimer = 1; + private float touchSensitivity = 0.1f; + private float fadeOutVolume = 0; private Image backgroundImage; - private PlayerAvatar mrServer; + private AnimatedSprite mrServer; private Image mrServerNameImage; private Image exhaustImage; private Image lobbyListBubbleImage; @@ -83,21 +86,29 @@ public class LobbyView extends View{ private Image lobbyImage; - private final ArrayList<PlayerAvatar> availableAvatars; - private ArrayList<PlayerAvatar> lobbyAvatars = new ArrayList<>(); + private ArrayList<AnimatedSprite> lobbyAvatars = new ArrayList<>(); private ArrayList<Image> playerReadyImages = new ArrayList<>(); private ArrayList<Label> lobbyLabels= new ArrayList<>(); + private final HashMap<Integer, String> availableAvatarsHashMap; - - public LobbyView(GameViewManager gvm, final PlayerController playerController, AssetManager assetManager, final Stage stage, Skin skin, ArrayList<PlayerAvatar> availableAvatars) { + public LobbyView(GameViewManager gvm, final PlayerController playerController, AssetManager assetManager, final Stage stage, Skin skin, HashMap<Integer,String> availableAvatarsHashMap, Music currentSong) { super(gvm, playerController, assetManager, stage, skin); - this.availableAvatars = availableAvatars; + this.portraitAtlas = (TextureAtlas) assetManager.get(CharacterAssets.PortraitsAtlas.path, CharacterAssets.PortraitsAtlas.classType); + + this.currentSong = currentSong; + fadeOutVolume = currentSong.getVolume(); buttonClickAudio = (Sound) assetManager.get(MenuAssets.BUTTON_CLICK_AUDIO.path, MenuAssets.BUTTON_CLICK_AUDIO.classType); this.camera = stage.getCamera(); + this.availableAvatarsHashMap = availableAvatarsHashMap; + + for(CinematicAssets asset : CinematicAssets.values()) { + assetManager.load(asset.path, asset.classType); + } + Image playerReadyCheck = new Image((Texture) assetManager.get(LobbyAssets.PLAYER_READY_CHECK.path, Texture.class)); playerReadyCheckButton = new ImageButton(playerReadyCheck.getDrawable()); playerReadyCheckButton.setPosition(col_width*6, row_height*2); @@ -105,42 +116,33 @@ public class LobbyView extends View{ backgroundImage = new Image((Texture) assetManager.get(LobbyAssets.BACKGROUND.path, LobbyAssets.BACKGROUND.classType)); stage.getViewport().setWorldSize(backgroundImage.getWidth(), backgroundImage.getHeight()); - rocketImage = new Image((Texture) assetManager.get(LobbyAssets.ROCKET.path, LobbyAssets.ROCKET.classType)); - rocketImage.setSize(200, 270); - rocketImage.setPosition(Gdx.graphics.getWidth()/2+40, 370); - rocketImage.setOrigin(0,0); + rocketImage = new Image((Texture) assetManager.get(LobbyAssets.ROCKET_SMALL.path, LobbyAssets.ROCKET_SMALL.classType)); + rocketImage.setPosition(1556, 360); + exhaustImage = new Image((Texture) assetManager.get(LobbyAssets.ROCKET_EXHAUST.path, LobbyAssets.ROCKET_EXHAUST.classType)); - exhaustImage.setSize(col_width*0.6f, row_height*2f); + exhaustImage.setSize(rocketImage.getHeight()/6, rocketImage.getHeight()/2); exhaustImage.setPosition(rocketImage.getX()+rocketImage.getWidth()/2-exhaustImage.getWidth()/2, rocketImage.getY()-exhaustImage.getHeight()); exhaustImage.setColor(1, 1, 1, 0); - lobbyListBubbleImage = new Image((Texture) assetManager.get(LobbyAssets.MR_SERVER_BUBBLE_SQUARE.path, LobbyAssets.MR_SERVER_BUBBLE_SQUARE.classType)); - - Texture mrServerAnim1 = (Texture) assetManager.get(LobbyAssets.MR_SERVER_ANIM1.path, LobbyAssets.MR_SERVER_ANIM1.classType); - Texture mrServerAnim2 = (Texture) assetManager.get(LobbyAssets.MR_SERVER_ANIM2.path, LobbyAssets.MR_SERVER_ANIM2.classType); - Texture mrServerAnim3 = (Texture) assetManager.get(LobbyAssets.MR_SERVER_ANIM3.path, LobbyAssets.MR_SERVER_ANIM3.classType); - - ArrayList<Texture> mrServerAnimTextures= new ArrayList<>(Arrays.asList(mrServerAnim1, mrServerAnim2, mrServerAnim3)); - - mrServer = new PlayerAvatar( mrServerAnimTextures, (Texture) assetManager.get(LobbyAssets.MR_SERVER_PORTRAIT.path, LobbyAssets.MR_SERVER_PORTRAIT.classType), "Mr. Server"); - - //mrServer.setPosition(247.5426f, 1 ); + TextureAtlas portraitAtlas = (TextureAtlas)assetManager.get(CharacterAssets.PortraitsAtlas.path, CharacterAssets.PortraitsAtlas.classType); + mrServer = new AnimatedSprite( (TextureAtlas) assetManager.get(LobbyAssets.MR_SERVER_ATLAS.path, LobbyAssets.MR_SERVER_ATLAS.classType), + portraitAtlas.findRegion("MrServerPortrait"), + "MrServer", + 3); mrServer.scale(-0.63f); mrServer.setOrigin(0,0 ); mrServer.setOriginBasedPosition(190, 1); - mrServerNameImage = new Image((Texture) assetManager.get(LobbyAssets.MR_SERVER_NAME.path, LobbyAssets.MR_SERVER_NAME.classType)); mrServerNameImage.setPosition(180+mrServerNameImage.getWidth()/2, 360); lobbyImage = new Image((Texture) assetManager.get(LobbyAssets.LOBBY.path, LobbyAssets.LOBBY.classType)); - lobbyImage.setPosition(774, 4320-4127.6141f); + lobbyImage.setPosition(774, 192); - lobbyListBubbleImage.setPosition(col_width*0.25f, row_height*4.5f); lobbyListBubbleImage = new Image((Texture) assetManager.get(LobbyAssets.MR_SERVER_BUBBLE_SQUARE.path, LobbyAssets.MR_SERVER_BUBBLE_SQUARE.classType)); - lobbyListBubbleImage.setPosition(col_width*0.1f, row_height*4.75f); + lobbyListBubbleImage.setPosition(29.535f, 4328-3930); lobbyListBubblePointerImage = new Image((Texture) assetManager.get(LobbyAssets.MR_SERVER_BUBBLE_POINTER.path, LobbyAssets.MR_SERVER_BUBBLE_POINTER.classType)); lobbyListBubblePointerImage.setPosition(lobbyListBubbleImage.getX()+lobbyListBubblePointerImage.getWidth()*1.25f, lobbyListBubbleImage.getY()-lobbyListBubblePointerImage.getHeight()+2); @@ -202,7 +204,6 @@ public class LobbyView extends View{ lobbyCreateSizeSelectBox.setSize(lobbyListBackButton.getWidth(), lobbyListBackButton.getHeight()); backgroundImage.setZIndex(1); - //backgroundImage.setPosition(Gdx.graphics.getWidth()/2-backgroundImage.getWidth()/2, 0); backgroundImage.setOrigin(0,0); stage.addActor(backgroundImage); @@ -341,6 +342,9 @@ public class LobbyView extends View{ } + for (Label label :lobbyLabels) label.remove(); + for(Image image: playerReadyImages) image.remove(); + lobbyAvatars.clear(); showMainLobbyWindow(); } @@ -552,20 +556,7 @@ public class LobbyView extends View{ float[] player7Pos = {col_width*5.7f, row_height*2}; float[] player8Pos = {col_width*5.5f, row_height*1.5f}; - float[] player1LabelPos = {col_width*0.5f, row_height*9.8f}; - float[] player2LabelPos = {col_width*0.5f, row_height*9.3f}; - - float[] player3LabelPos = {col_width*0.5f, row_height*8.8f}; - float[] player4LabelPos = {col_width*0.5f, row_height*8.3f}; - - float[] player5LabelPos = {col_width*0.5f, row_height*7.8f}; - float[] player6LabelPos = {col_width*0.5f, row_height*7.3f}; - - float[] player7LabelPos = {col_width*0.5f, row_height*6.8f}; - float[] player8LabelPos = {col_width*0.5f, row_height*6.3f}; - ArrayList<float[]> playerPositions= new ArrayList<>(Arrays.asList(player1Pos, player2Pos, player3Pos, player4Pos, player5Pos, player6Pos, player7Pos, player8Pos));; - ArrayList<float[]> playerLabelPositions= new ArrayList<>(Arrays.asList(player1LabelPos, player2LabelPos, player3LabelPos, player4LabelPos, player5LabelPos, player6LabelPos, player7LabelPos, player8LabelPos)); private void lobbyRefresh(){ if(playerController.getLobby().getID() == -1) { @@ -584,11 +575,27 @@ public class LobbyView extends View{ for(int i = 0; i<lobby.getPlayers().size(); i++){ Player player = lobby.getPlayers().get(i); - PlayerAvatar playerAvatar =availableAvatars.get(player.getIndexAvatar()); - playerAvatar.setScale(0.3f, 0.3f); - playerAvatar.setOrigin(0, 0); - playerAvatar.setPosition(playerPositions.get(i)[0], playerPositions.get(i)[1]); - lobbyAvatars.add(playerAvatar); + System.out.println("Finding avatar with index: " + player.getIndexAvatar()); + System.out.println("Name is: " + availableAvatarsHashMap.get(player.getIndexAvatar())); + + String path = Enum.valueOf(CharacterAssets.class, availableAvatarsHashMap.get(player.getIndexAvatar())+"Atlas").path; + Class classType = Enum.valueOf(CharacterAssets.class, availableAvatarsHashMap.get(player.getIndexAvatar())+"Atlas").classType; + + AnimatedSprite animatedSprite = new AnimatedSprite( + (TextureAtlas) assetManager.get(path, classType), + portraitAtlas.findRegion(availableAvatarsHashMap.get(player.getIndexAvatar())+"Portrait"), + availableAvatarsHashMap.get(player.getIndexAvatar()), + 3); + + + animatedSprite.setOrigin(0, 0); + int remX = i%4; + int remY = mod(2, i+2); + int xPad = 10; + System.out.printf("remX: %d\tremY: %d\n", remX, remY); + animatedSprite.setPosition(lobbyImage.getX()-xPad+remX*((lobbyImage.getWidth()-xPad)/4), lobbyImage.getY()-remY*(lobbyImage.getHeight()/7.5f)); + animatedSprite.setScale(0.3f+0.025f*remY, 0.3f+0.025f*remY); + lobbyAvatars.add(animatedSprite); Label label = new Label("Player"+i+":\t%d" + player.getPlayerName() + "\t", skin, "black"); label.setColor(Color.BLACK); @@ -601,13 +608,10 @@ public class LobbyView extends View{ Image image = new Image(assetManager.get(LobbyAssets.PLAYER_READY.path, Texture.class)); image.setPosition(label.getX()+image.getWidth()+col_width*1f, label.getY()-image.getHeight()/2+label.getHeight()/2); playerReadyImages.add(image); - - //System.out.println("ready???"); } else{ System.out.println("Player is not ready.."); } - stage.addActor(lobbyLabels.get(i)); } for (Image image : playerReadyImages){ @@ -616,6 +620,17 @@ public class LobbyView extends View{ } } + private int mod(int a, int b) + { + int c = (a % b + b) % b; + if(c == a){ + return 0; + } + else{ + return c; + } + } + private void showLobbyWindow(){ clearUIWidgets(); @@ -650,8 +665,8 @@ public class LobbyView extends View{ stage.draw(); stage.getBatch().begin(); - for(PlayerAvatar playerAvatar : lobbyAvatars){ - playerAvatar.draw(stage.getBatch()); + for(AnimatedSprite animatedSprite : lobbyAvatars){ + animatedSprite.draw(stage.getBatch()); } mrServer.draw(stage.getBatch()); @@ -685,15 +700,16 @@ public class LobbyView extends View{ stage.getBatch().setColor(c); stage.getBatch().end(); if(fadeOutAlpha >= 1){ + currentSong.stop(); stage.clear(); startFadeout = false; setFadeColor(Color.BLACK); - gvm.set(new LobbyPlayTransitionScreen(gvm, playerController, assetManager, stage, skin, availableAvatars)); + gvm.set(new CinematicView(gvm, playerController, assetManager, stage, skin, lobbyAvatars)); } - } - boolean isDragging = false; - float sensitivity = 0.1f; + fadeOutVolume -= dt/fadeOutLength; + currentSong.setVolume(fadeOutVolume); + } @Override public void handleInput(float dt) { @@ -703,9 +719,8 @@ public class LobbyView extends View{ System.out.println("Only once"); } if(Gdx.input.isTouched()){ - - float camXPos = camera.position.x + (lastTouch[0]-Gdx.input.getX())*sensitivity; //camera.position.x + (Gdx.input.getX()-lastTouch[0])*sensitivity; - float camYPos = camera.position.y + (-stage.getViewport().getScreenHeight()+Gdx.input.getY()+lastTouch[1])*sensitivity; + float camXPos = camera.position.x + (lastTouch[0]-Gdx.input.getX())* touchSensitivity; //camera.position.x + (Gdx.input.getX()-lastTouch[0])*sensitivity; + float camYPos = camera.position.y + (-stage.getViewport().getScreenHeight()+Gdx.input.getY()+lastTouch[1])* touchSensitivity; float a = MathUtils.clamp(camXPos, camera.viewportWidth/2, backgroundImage.getWidth()-camera.viewportWidth/2); float b = MathUtils.clamp(camYPos, camera.viewportHeight/2, backgroundImage.getImageHeight()-camera.viewportHeight/2); @@ -721,13 +736,14 @@ public class LobbyView extends View{ public void update(float dt) { stage.getCamera().update(); + assetManager.update(); updateAvatarTimer+= dt; refreshLobbyTimer += dt; - if(updateAvatarTimer>= updateAvatarFrequency){ - for(PlayerAvatar playerAvatar : lobbyAvatars){ - playerAvatar.updateTexture(); + if(updateAvatarTimer-1/Gdx.graphics.getFramesPerSecond()/2>= updateAvatarFrequency){ + for(AnimatedSprite animatedSprite : lobbyAvatars){ + animatedSprite.updateTexture(); } mrServer.updateTexture(); updateAvatarTimer=0; @@ -738,7 +754,6 @@ public class LobbyView extends View{ refreshLobbyTimer=0; } - stage.act(dt); if(playerController.getLobby().getLobbyGameStarted()){ diff --git a/CheckersClient/core/src/com/mygdx/game/views/MenuView.java b/CheckersClient/core/src/com/mygdx/game/views/MenuView.java index ed1fe94c0d30038f8f15639b7ae81f504f06d0ba..0c5c69b944c6607a93816f87fda6f2d510e920c8 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/MenuView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/MenuView.java @@ -5,8 +5,8 @@ import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.scenes.scene2d.Actor; @@ -26,10 +26,10 @@ import com.mygdx.game.controllers.PlayerController; import com.mygdx.game.views.enums.CharacterAssets; import com.mygdx.game.views.enums.LobbyAssets; import com.mygdx.game.views.enums.MenuAssets; -import com.mygdx.game.views.tokens.PlayerAvatar; +import com.mygdx.game.views.tokens.AnimatedSprite; import java.util.ArrayList; -import java.util.Arrays; +import java.util.HashMap; public class MenuView extends View{ @@ -60,11 +60,13 @@ public class MenuView extends View{ private ImageButton nextAvatarButton; private ImageButton previousAvatarButton; private Image avatarPortraitImage; + private TextureAtlas portraitAtlas; - private ArrayList<PlayerAvatar> availableAvatars; + private ArrayList<AnimatedSprite> availableAvatars; int currentIndexAvatar = 0; + private HashMap<Integer, String> availableAvatarsHashMap; public MenuView(final GameViewManager gvm, final PlayerController playerController, AssetManager assetManager, final Stage stage, Skin skin) { super(gvm, playerController, assetManager, stage, skin); @@ -74,6 +76,14 @@ public class MenuView extends View{ } shapeRenderer = new ShapeRenderer(); // Used for draw debugging + availableAvatarsHashMap = new HashMap<>(); + availableAvatarsHashMap.put(0, "RegularGuy"); + availableAvatarsHashMap.put(1, "HipsterGirl"); + availableAvatarsHashMap.put(2, "HighSchoolGuy"); + availableAvatarsHashMap.put(3, "RocketGuy"); + availableAvatarsHashMap.put(4, "AsianGirl"); + availableAvatarsHashMap.put(5, "Grandma"); + this.backgroundImage = new Image ((Texture) assetManager.get(MenuAssets.BACKGROUND.path, MenuAssets.BACKGROUND.classType)); backgroundImage.setPosition(Gdx.graphics.getWidth()/2-backgroundImage.getWidth()/2, 0); backgroundImage.setOrigin(0,0); @@ -111,72 +121,25 @@ public class MenuView extends View{ music.setVolume(1); music.setLooping(true); music.play(); - availableAvatars = new ArrayList<>(); - - // SPRITES - Texture anim_tex_1 = assetManager.get(CharacterAssets.ASIAN_GIRL_ANIM_FRAME1.path, Texture.class); - Texture anim_tex_2 = assetManager.get(CharacterAssets.ASIAN_GIRL_ANIM_FRAME2.path, Texture.class); - Texture anim_tex_3 = assetManager.get(CharacterAssets.ASIAN_GIRL_ANIM_FRAME3.path, Texture.class); - Texture portrait = assetManager.get(CharacterAssets.ASIAN_GIRL_PORTRAIT.path, Texture.class); - ArrayList<Texture> anim_tex_arr = new ArrayList<>(Arrays.asList(anim_tex_1, anim_tex_2, anim_tex_3)); - PlayerAvatar asianGirlAvatar = new PlayerAvatar(anim_tex_arr, portrait, "Small Girl"); - availableAvatars.add(asianGirlAvatar); - - anim_tex_1 = assetManager.get(CharacterAssets.GRANDMA_ANIM_FRAME1.path, Texture.class); - anim_tex_2 = assetManager.get(CharacterAssets.GRANDMA_ANIM_FRAME2.path, Texture.class); - anim_tex_3 = assetManager.get(CharacterAssets.GRANDMA_ANIM_FRAME3.path, Texture.class); - portrait = assetManager.get(CharacterAssets.GRANDMA_PORTRAIT.path, Texture.class); - anim_tex_arr = new ArrayList<>(Arrays.asList(anim_tex_1, anim_tex_2, anim_tex_3)); - PlayerAvatar grandmaAvatar = new PlayerAvatar(anim_tex_arr, portrait, "Grandma"); - availableAvatars.add(grandmaAvatar); - - anim_tex_1 = assetManager.get(CharacterAssets.HIGH_SCHOOL_GUY_ANIM_FRAME1.path, Texture.class); - anim_tex_2 = assetManager.get(CharacterAssets.HIGH_SCHOOL_GUY_ANIM_FRAME2.path, Texture.class); - anim_tex_3 = assetManager.get(CharacterAssets.HIGH_SCHOOL_GUY_ANIM_FRAME3.path, Texture.class); - portrait = assetManager.get(CharacterAssets.HIGH_SCHOOL_GUY_PORTRAIT.path, Texture.class); - anim_tex_arr = new ArrayList<>(Arrays.asList(anim_tex_1, anim_tex_2, anim_tex_3)); - PlayerAvatar highSchoolGuy = new PlayerAvatar(anim_tex_arr, portrait, "High School Guy"); - availableAvatars.add(highSchoolGuy); - - anim_tex_1 = assetManager.get(CharacterAssets.HIPSTER_GIRL_ANIM_FRAME1.path, Texture.class); - anim_tex_2 = assetManager.get(CharacterAssets.HIPSTER_GIRL_ANIM_FRAME2.path, Texture.class); - anim_tex_3 = assetManager.get(CharacterAssets.HIPSTER_GIRL_ANIM_FRAME3.path, Texture.class); - portrait = assetManager.get(CharacterAssets.HIPSTER_GIRL_PORTRAIT.path, Texture.class); - anim_tex_arr = new ArrayList<>(Arrays.asList(anim_tex_1, anim_tex_2, anim_tex_3)); - PlayerAvatar hipsterGirl = new PlayerAvatar(anim_tex_arr, portrait, "Fashion Girl"); - availableAvatars.add(hipsterGirl); - - anim_tex_1 = assetManager.get(CharacterAssets.REGULAR_GUY_ANIM_FRAME1.path, Texture.class); - anim_tex_2 = assetManager.get(CharacterAssets.REGULAR_GUY_ANIM_FRAME2.path, Texture.class); - anim_tex_3 = assetManager.get(CharacterAssets.REGULAR_GUY_ANIM_FRAME3.path, Texture.class); - portrait = assetManager.get(CharacterAssets.REGULAR_GUY_PORTRAIT.path, Texture.class); - anim_tex_arr = new ArrayList<>(Arrays.asList(anim_tex_1, anim_tex_2, anim_tex_3)); - PlayerAvatar regularGuy = new PlayerAvatar(anim_tex_arr, portrait, "Regular Guy"); - availableAvatars.add(regularGuy); - - anim_tex_1 = assetManager.get(CharacterAssets.ROCKET_GUY_ANIM_FRAME1.path, Texture.class); - anim_tex_2 = assetManager.get(CharacterAssets.ROCKET_GUY_ANIM_FRAME2.path, Texture.class); - anim_tex_3 = assetManager.get(CharacterAssets.ROCKET_GUY_ANIM_FRAME3.path, Texture.class); - portrait = assetManager.get(CharacterAssets.ROCKET_GUY_PORTRAIT.path, Texture.class); - anim_tex_arr = new ArrayList<>(Arrays.asList(anim_tex_1, anim_tex_2, anim_tex_3)); - PlayerAvatar rocketGuy = new PlayerAvatar(anim_tex_arr, portrait, "Rocket Guy"); - availableAvatars.add(rocketGuy); Drawable drawable = new TextureRegionDrawable(new TextureRegion(assetManager.get(MenuAssets.NEXT_AVATAR_BUTTON.path, Texture.class))); nextAvatarButton = new ImageButton(drawable); - TextureRegion texReg = new TextureRegion(assetManager.get(MenuAssets.NEXT_AVATAR_BUTTON.path, Texture.class)); - texReg.flip(true,false); - Drawable flippedDrawable = new TextureRegionDrawable(texReg); - previousAvatarButton = new ImageButton(flippedDrawable); + TextureRegion previousAvatarButton = new TextureRegion(assetManager.get(MenuAssets.NEXT_AVATAR_BUTTON.path, Texture.class)); + previousAvatarButton.flip(true,false); + Drawable flippedDrawable = new TextureRegionDrawable(previousAvatarButton); + this.previousAvatarButton = new ImageButton(flippedDrawable); + this.portraitAtlas = (TextureAtlas) assetManager.get(CharacterAssets.PortraitsAtlas.path, CharacterAssets.PortraitsAtlas.classType); - Drawable portraitDrawable = new TextureRegionDrawable(new TextureRegion(availableAvatars.get(currentIndexAvatar).getPortrait())); - avatarPortraitImage = new Image(portraitDrawable); - avatarPortraitImage.setBounds(0, 0, col_width*1.8f, col_width*1.8f); + TextureRegion texReggy = (TextureRegion) portraitAtlas.findRegion(availableAvatarsHashMap.get(currentIndexAvatar)+"Portrait"); + System.out.println("Finding avatar with index: " + currentIndexAvatar); + System.out.println("Name is: " + availableAvatarsHashMap.get(currentIndexAvatar)); + avatarPortraitImage = new Image(texReggy); + avatarPortraitImage.setBounds(0,0,265,265); + avatarPortraitImage.setPosition(formImage.getX()+formImage.getWidth()/2-avatarPortraitImage.getScaleX()*avatarPortraitImage.getWidth()/2, formButton.getY()+formButton.getHeight()+40); - avatarPortraitImage.setPosition(formImage.getX()+formImage.getWidth()/2-avatarPortraitImage.getWidth()/2, formImage.getY()+row_height*2); nextAvatarButton.setPosition(avatarPortraitImage.getX()+ avatarPortraitImage.getWidth()+col_width*0.8f-nextAvatarButton.getWidth(), avatarPortraitImage.getY()+ avatarPortraitImage.getHeight()/2-nextAvatarButton.getHeight()/2); - previousAvatarButton.setPosition(avatarPortraitImage.getX()-col_width*0.8f, avatarPortraitImage.getY()+ avatarPortraitImage.getHeight()/2-previousAvatarButton.getHeight()/2); + this.previousAvatarButton.setPosition(avatarPortraitImage.getX()-col_width*0.8f, avatarPortraitImage.getY()+ avatarPortraitImage.getHeight()/2- this.previousAvatarButton.getHeight()/2); connectionBarImage = new Image(assetManager.get(MenuAssets.CONNECTION_BAR.path, Texture.class)); @@ -187,14 +150,14 @@ public class MenuView extends View{ connectionBarRedCircle.setPosition(connectionBarImage.getX()+connectionBarImage.getWidth()*0.75f, connectionBarImage.getY()+connectionBarImage.getHeight()/2-connectionBarRedCircle.getHeight()/2); connectionBarGreenCircle.setPosition(connectionBarImage.getX()+connectionBarImage.getWidth()*0.75f, connectionBarImage.getY()+connectionBarImage.getHeight()/2-connectionBarGreenCircle.getHeight()/2); - previousAvatarButton.addListener(new InputListener(){ + this.previousAvatarButton.addListener(new InputListener(){ @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { buttonClickAudio.play(0.8f); if(currentIndexAvatar >0){ currentIndexAvatar -= 1; + updateAvatarPortrait(); } - updateAvatarPortrait(); return true; } @@ -204,11 +167,10 @@ public class MenuView extends View{ @Override public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { buttonClickAudio.play(0.8f); - if(currentIndexAvatar <availableAvatars.size()-1){ + if(availableAvatarsHashMap.size()-1 > currentIndexAvatar){ currentIndexAvatar += 1; + updateAvatarPortrait(); } - updateAvatarPortrait(); - outputLabel.setText("NEXT AVATAR: current avatar is: " + availableAvatars.get(currentIndexAvatar).getName()); return true; } }); @@ -254,7 +216,7 @@ public class MenuView extends View{ stage.addActor(usernameTextField); stage.addActor(formButton); stage.addActor(nextAvatarButton); - stage.addActor(previousAvatarButton); + stage.addActor(this.previousAvatarButton); stage.addActor(avatarPortraitImage); stage.addActor(logoImage); } @@ -265,8 +227,11 @@ public class MenuView extends View{ } private void updateAvatarPortrait(){ - Drawable portraitDrawable = new TextureRegionDrawable(new TextureRegion(availableAvatars.get(currentIndexAvatar).getPortrait())); - avatarPortraitImage.setDrawable(portraitDrawable); + System.out.println("Finding avatar with index: " + currentIndexAvatar); + System.out.println("Name is: " + availableAvatarsHashMap.get(currentIndexAvatar) + "Portrait"); + avatarPortraitImage.setDrawable(new TextureRegionDrawable( + (TextureRegion) portraitAtlas.findRegion(availableAvatarsHashMap.get(currentIndexAvatar)+"Portrait") + )); } @@ -316,7 +281,7 @@ public class MenuView extends View{ if(fadeOutAlpha >= 1){ stage.clear(); startFadeout = false; - gvm.push(new LobbyView(gvm, playerController, assetManager, stage, skin, availableAvatars)); + gvm.push(new LobbyView(gvm, playerController, assetManager, stage, skin, availableAvatarsHashMap, music)); } } diff --git a/CheckersClient/core/src/com/mygdx/game/views/PlayView.java b/CheckersClient/core/src/com/mygdx/game/views/PlayView.java index a4aec1898000389f6558a568a86f3a9c9b7cb507..6a4fca9fb53872a57bce84b9e45ada1043b5098f 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/PlayView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/PlayView.java @@ -1,20 +1,15 @@ package com.mygdx.game.views; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.Input; import com.badlogic.gdx.assets.AssetManager; -import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont; -import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.mygdx.game.controllers.PlayerController; -import com.mygdx.game.views.enums.MenuAssets; import com.mygdx.game.views.enums.PlayAssets; -import com.mygdx.game.views.tokens.PlayerAvatar; +import com.mygdx.game.views.tokens.AnimatedSprite; import com.mygdx.game.views.tokens.StarPiece; import java.util.ArrayList; @@ -23,21 +18,25 @@ import java.util.ArrayList; public class PlayView extends View{ private Texture background; + StarPiece piece; + Texture starPieceBase; + Texture starPieceBaseBorder; + Texture starPieceMast; + Texture starPieceMastBorder; + Texture starPieceHead; + Texture starPieceHeadBorder; - public PlayView(GameViewManager gvm, PlayerController playerController, AssetManager assetManager, Stage stage, Skin skin, ArrayList<PlayerAvatar> availableAvatars) { - super(gvm, playerController, assetManager, stage, skin); - background = new Texture ("Game/GameBoard/1x/GameBoard@1x.png"); - - } - - public PlayView(GameViewManager gvm, PlayerController playerController, AssetManager assetManager, Stage stage, Skin skin) { + public PlayView(GameViewManager gvm, PlayerController playerController, AssetManager assetManager, Stage stage, Skin skin, ArrayList<AnimatedSprite> lobbyAvatars) { super(gvm, playerController, assetManager, stage, skin); + background = new Texture ("Game/1x/GameBoard@1x.png"); for(PlayAssets asset : PlayAssets.values()) { assetManager.load(asset.path, asset.classType); } assetManager.finishLoading(); + setFadeColor(Color.BLACK); + starPieceBase = (Texture) assetManager.get(PlayAssets.STAR_PIECE_BASE.path, PlayAssets.STAR_PIECE_BASE.classType); starPieceBaseBorder = (Texture) assetManager.get(PlayAssets.STAR_PIECE_BASE_BORDER.path, PlayAssets.STAR_PIECE_BASE_BORDER.classType); starPieceMast = (Texture) assetManager.get(PlayAssets.STAR_PIECE_MAST.path, PlayAssets.STAR_PIECE_MAST.classType); @@ -45,18 +44,9 @@ public class PlayView extends View{ starPieceHead = (Texture) assetManager.get(PlayAssets.STAR_PIECE_HEAD.path, PlayAssets.STAR_PIECE_HEAD.classType); starPieceHeadBorder = (Texture) assetManager.get(PlayAssets.STAR_PIECE_HEAD_BORDER.path, PlayAssets.STAR_PIECE_HEAD_BORDER.classType); - piece = new StarPiece(0 , 0, Color.RED, starPieceBase, starPieceBaseBorder, starPieceMast, starPieceMastBorder, starPieceHead, starPieceHeadBorder); - piece.setRotateHead(true); - + this.piece = new StarPiece(0 , 0, Color.RED, starPieceBase, starPieceBaseBorder, starPieceMast, starPieceMastBorder, starPieceHead, starPieceHeadBorder); + this.piece.setRotateHead(true); } - StarPiece piece; - Texture starPieceBase; - Texture starPieceBaseBorder; - Texture starPieceMast; - Texture starPieceMastBorder; - Texture starPieceHead; - Texture starPieceHeadBorder; - private void isGameOver(){ boolean someCondition = false; @@ -79,24 +69,45 @@ public class PlayView extends View{ @Override public void render(float dt) { - stage.draw(); - + stage.getBatch().begin(); + stage.getBatch().draw(background, 0, 0); + stage.getBatch().end(); + stage.draw(); piece.draw(stage.getBatch()); - piece.setPosition(Gdx.input.getX(), Gdx.input.getY()); - - } @Override public void fadeIn(float dt) { - + stage.getBatch().begin(); + Color c = stage.getBatch().getColor(); + stage.getBatch().setColor(c.r, c.g, c.b, fadeOutAlpha); + fadeInAlpha -= dt/fadeInLength; + stage.getBatch().draw(fadeOverlayTexture, 0, 0, col_width*Help_Guides, row_height*Help_Guides); + stage.getBatch().setColor(c); + stage.getBatch().end(); + + if(fadeInAlpha <= 0){ + startFadeIn = false; + } } @Override public void fadeOut(float dt) { - + stage.getBatch().begin(); + Color c = stage.getBatch().getColor(); + stage.getBatch().setColor(c.r, c.g, c.b, fadeOutAlpha); + fadeOutAlpha += dt/fadeOutLength; + stage.getBatch().draw(fadeOverlayTexture, 0, 0, col_width*Help_Guides, row_height*Help_Guides); + stage.getBatch().setColor(c); + stage.getBatch().end(); + if(fadeOutAlpha >= 1){ + stage.clear(); + startFadeout = false; + + //gvm.set(new CinematicView(gvm, playerController, assetManager, stage, skin, lobbyAvatars)); + } } private void debugDraw(SpriteBatch sb, String text, int xPos, int yPos){ diff --git a/CheckersClient/core/src/com/mygdx/game/views/enums/CharacterAssets.java b/CheckersClient/core/src/com/mygdx/game/views/enums/CharacterAssets.java index a74887a922a1347499eab794f4053267a64bca37..c77661dbc6838fc15a8573c98c30685841f0ccbd 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/enums/CharacterAssets.java +++ b/CheckersClient/core/src/com/mygdx/game/views/enums/CharacterAssets.java @@ -1,38 +1,17 @@ package com.mygdx.game.views.enums; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; public enum CharacterAssets { - ASIAN_GIRL_ANIM_FRAME1("characters/AsianGirl1@1x.png", Texture.class), - ASIAN_GIRL_ANIM_FRAME2("characters/AsianGirl2@1x.png", Texture.class), - ASIAN_GIRL_ANIM_FRAME3("characters/AsianGirl3@1x.png", Texture.class), - ASIAN_GIRL_PORTRAIT("characters/AsianGirlPortrait@1x.png", Texture.class), - - GRANDMA_ANIM_FRAME1("characters/Grandma1@1x.png", Texture.class), - GRANDMA_ANIM_FRAME2("characters/Grandma2@1x.png", Texture.class), - GRANDMA_ANIM_FRAME3("characters/Grandma3@1x.png", Texture.class), - GRANDMA_PORTRAIT("characters/GrandmaPortrait@1x.png", Texture.class), - - HIGH_SCHOOL_GUY_ANIM_FRAME1("characters/HighSchoolGuy1@1x.png", Texture.class), - HIGH_SCHOOL_GUY_ANIM_FRAME2("characters/HighSchoolGuy2@1x.png", Texture.class), - HIGH_SCHOOL_GUY_ANIM_FRAME3("characters/HighSchoolGuy3@1x.png", Texture.class), - HIGH_SCHOOL_GUY_PORTRAIT("characters/HighSchoolGuyPortrait@1x.png", Texture.class), - - HIPSTER_GIRL_ANIM_FRAME1("characters/HipsterGirl1@1x.png", Texture.class), - HIPSTER_GIRL_ANIM_FRAME2("characters/HipsterGirl2@1x.png", Texture.class), - HIPSTER_GIRL_ANIM_FRAME3("characters/HipsterGirl3@1x.png", Texture.class), - HIPSTER_GIRL_PORTRAIT("characters/HipsterGirlPortrait@1x.png", Texture.class), - - REGULAR_GUY_ANIM_FRAME1("characters/RegularGuy1@1x.png", Texture.class), - REGULAR_GUY_ANIM_FRAME2("characters/RegularGuy2@1x.png", Texture.class), - REGULAR_GUY_ANIM_FRAME3("characters/RegularGuy3@1x.png", Texture.class), - REGULAR_GUY_PORTRAIT("characters/RegularGuyPortrait@1x.png", Texture.class), - - ROCKET_GUY_ANIM_FRAME1("characters/RocketGuy1@1x.png", Texture.class), - ROCKET_GUY_ANIM_FRAME2("characters/RocketGuy2@1x.png", Texture.class), - ROCKET_GUY_ANIM_FRAME3("characters/RocketGuy3@1x.png", Texture.class), - ROCKET_GUY_PORTRAIT("characters/RocketGuyPortrait@1x.png", Texture.class); + AsianGirlAtlas("characters/atlases/AsianGirl.atlas", TextureAtlas.class), + GrandmaAtlas("characters/atlases/Grandma.atlas", TextureAtlas.class), + HighSchoolGuyAtlas("characters/atlases/HighSchoolGuy.atlas", TextureAtlas.class), + HipsterGirlAtlas("characters/atlases/HipsterGirl.atlas", TextureAtlas.class), + RegularGuyAtlas("characters/atlases/RegularGuy.atlas", TextureAtlas.class), + RocketGuyAtlas("characters/atlases/RocketGuy.atlas", TextureAtlas.class), + PortraitsAtlas("characters/atlases/Portraits.atlas", TextureAtlas.class); public final String path; public final Class classType; diff --git a/CheckersClient/core/src/com/mygdx/game/views/enums/CinematicAssets.java b/CheckersClient/core/src/com/mygdx/game/views/enums/CinematicAssets.java new file mode 100644 index 0000000000000000000000000000000000000000..77ac1e41ed59c63fdf6c8965841916b2b9dd653e --- /dev/null +++ b/CheckersClient/core/src/com/mygdx/game/views/enums/CinematicAssets.java @@ -0,0 +1,19 @@ +package com.mygdx.game.views.enums; + +import com.badlogic.gdx.audio.Music; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; + +public enum CinematicAssets { + + CINEMATIC_AUDIO("cinematic/CinematicMusic.mp3", Music.class), + COUNT_DOWN_ATLAS("cinematic/atlas/CountDown.atlas", TextureAtlas.class), + CLOUD_ATLAS("cinematic/atlas/Cloud.atlas", TextureAtlas.class); + + public final String path; + public final Class classType; + + CinematicAssets(String assetPath, Class classType) { + this.path = assetPath; + this.classType = classType; + } +} \ No newline at end of file diff --git a/CheckersClient/core/src/com/mygdx/game/views/enums/LobbyAssets.java b/CheckersClient/core/src/com/mygdx/game/views/enums/LobbyAssets.java index 950d9af43fda3868e6295707bce0fe89074362b4..4b27859d170fa984718572be93a6004e1ed7bf45 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/enums/LobbyAssets.java +++ b/CheckersClient/core/src/com/mygdx/game/views/enums/LobbyAssets.java @@ -1,24 +1,26 @@ package com.mygdx.game.views.enums; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.TextureArray; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; public enum LobbyAssets { LOBBY_LIST("Menu/1x/LobbyList.png", Texture.class), BACKGROUND("Menu/1x/LobbyMenu@1x.png", Texture.class), LOBBY("Menu/1x/Lobby.png", Texture.class), - MR_SERVER_ANIM1("characters/MrServer1@1x.png", Texture.class), - MR_SERVER_ANIM2("characters/MrServer2@1x.png", Texture.class), - MR_SERVER_ANIM3("characters/MrServer3@1x.png", Texture.class), - MR_SERVER_PORTRAIT("characters/MrServerPortrait@1x.png", Texture.class), + MR_SERVER_ATLAS("characters/atlases/MrServer.atlas", TextureAtlas.class), MR_SERVER_NAME("characters/MrServerName.png", Texture.class), MR_SERVER_BUBBLE_SQUARE("Menu/1x/MrServerBubbleSquare.png", Texture.class), MR_SERVER_BUBBLE_POINTER("Menu/1x/MrServerBubblePointer.png", Texture.class), - ROCKET("Menu/1x/Rocket_Main@1x.png", Texture.class), + + ROCKET_BIG("Menu/1x/Rocket_Main@1x.png", Texture.class), + ROCKET_SMALL("Menu/1x/Rocket_Small@1x.png", Texture.class), ROCKET_EXHAUST("Menu/1x/Rocket_Exhaust@1x.png", Texture.class), PLAYER_READY_CHECK("Menu/1x/PlayerReadyCheck.png", Texture.class), PLAYER_READY("Menu/1x/PlayerReady.png", Texture.class); + public final String path; public final Class classType; diff --git a/CheckersClient/core/src/com/mygdx/game/views/enums/MenuAssets.java b/CheckersClient/core/src/com/mygdx/game/views/enums/MenuAssets.java index b79d542d1923f1744e840df10ef23516aaf7a8de..b461218431ef6f34418a71894fb57be9fd464dae 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/enums/MenuAssets.java +++ b/CheckersClient/core/src/com/mygdx/game/views/enums/MenuAssets.java @@ -1,9 +1,7 @@ package com.mygdx.game.views.enums; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.BitmapFont; public enum MenuAssets { FORM_BUTTON("Menu/1x/FormButton.png", Texture.class), diff --git a/CheckersClient/core/src/com/mygdx/game/views/tokens/AnimatedSprite.java b/CheckersClient/core/src/com/mygdx/game/views/tokens/AnimatedSprite.java new file mode 100644 index 0000000000000000000000000000000000000000..f3ff1823cb2a1ebabe45457a9c3340325f37574d --- /dev/null +++ b/CheckersClient/core/src/com/mygdx/game/views/tokens/AnimatedSprite.java @@ -0,0 +1,54 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.mygdx.game.views.tokens; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.Sprite; +import com.badlogic.gdx.graphics.g2d.TextureAtlas; +import com.badlogic.gdx.graphics.g2d.TextureRegion; + +public class AnimatedSprite extends Sprite { + + private final TextureRegion portrait; + private final String name; + private final TextureAtlas textureAtlas; + private int currentFrame = 1; + private final int maxFrame; + private boolean reversed = false; + + + public AnimatedSprite(TextureAtlas textureAtlas, TextureRegion portrait, String name, int maxFrame) { + super(textureAtlas.findRegion(name+1)); + this.portrait = portrait; + this.name = name; + this.maxFrame = maxFrame; + this.textureAtlas = textureAtlas; + } + + public void updateTexture() { + if (reversed) { + --currentFrame; + if (currentFrame == 1) { + reversed = false; + } + } else { + ++currentFrame; + if (currentFrame == maxFrame) { + reversed = true; + } + } + setRegion(textureAtlas.findRegion(name+currentFrame)); + } + + + public TextureRegion getPortrait() { + return this.portrait; + } + + public String getName() { + return this.name; + } +} diff --git a/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java b/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java deleted file mode 100644 index 9d3a3777e46d3bae5cf50bf061fec5fd610a789a..0000000000000000000000000000000000000000 --- a/CheckersClient/core/src/com/mygdx/game/views/tokens/PlayerAvatar.java +++ /dev/null @@ -1,54 +0,0 @@ -// -// Source code recreated from a .class file by IntelliJ IDEA -// (powered by Fernflower decompiler) -// - -package com.mygdx.game.views.tokens; - -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.g2d.Sprite; -import java.util.ArrayList; - -public class PlayerAvatar extends Sprite { - private final ArrayList<Texture> textureArray; - private final Texture portrait; - private final String name; - private int currentTexture = 0; - private boolean reversed = false; - - public PlayerAvatar(ArrayList<Texture> textureArray, Texture portrait, String name) { - super(textureArray.get(0)); - this.textureArray = textureArray; - this.portrait = portrait; - this.name = name; - setTexture(textureArray.get(currentTexture)); - } - - public void updateTexture() { - if (this.reversed) { - --this.currentTexture; - if (this.currentTexture <= 0) { - this.reversed = false; - } - } else { - ++this.currentTexture; - if (this.currentTexture == this.textureArray.size() - 1) { - this.reversed = true; - } - } - //System.out.println("Updating texture. Current texture Int: " + currentTexture + " numOfTextures: " + textureArray.size()); - setTexture(textureArray.get(currentTexture)); - } - - public ArrayList<Texture> getTextures() { - return this.textureArray; - } - - public Texture getPortrait() { - return this.portrait; - } - - public String getName() { - return this.name; - } -} diff --git a/CheckersServer/core/src/com/mygdx/game/controller/commands/cLobbyLeave.java b/CheckersServer/core/src/com/mygdx/game/controller/commands/cLobbyLeave.java index f8665622965d4e6a4606a3fe930f7cf786c62e55..d21ef48818cd6ce678666110eb275672ab18b77e 100644 --- a/CheckersServer/core/src/com/mygdx/game/controller/commands/cLobbyLeave.java +++ b/CheckersServer/core/src/com/mygdx/game/controller/commands/cLobbyLeave.java @@ -20,6 +20,7 @@ public class cLobbyLeave extends Command{ Lobby lobby = net.getLobby(lobby_id); ArrayList<Connection> connections = net.getConnections(lobby); data = net.leaveLobby(connection.getID(),lobby_id); + net.getPlayer(connection.getID()).setIsPlayerReady(false); System.out.printf("Request from Player w. ID: %d to leave Lobby w. ID: %d. Returning Lobby w. ID: %d \n", connection.getID(), lobby_id, ((Lobby)data).getID()); for (Connection c : connections) {