diff --git a/Faceball2030/Editor.cpp b/Faceball2030/Editor.cpp index 824bba2..e11ebe0 100644 --- a/Faceball2030/Editor.cpp +++ b/Faceball2030/Editor.cpp @@ -9,11 +9,40 @@ Editor::Editor() { MAP_SIZE = { (int)map[0].size(),(int)map.size() }; } +std::string Editor::GetPowerupName(PowerupType type){ + switch (type){ + case PowerupType::ARMOR:{ + return "ARMOR"; + }break; + case PowerupType::CAMO:{ + return "CAMO"; + }break; + case PowerupType::COIN:{ + return "COIN"; + }break; + case PowerupType::MAP:{ + return "MAP"; + }break; + case PowerupType::SHIELD:{ + return "SHIELD"; + }break; + case PowerupType::SHOTS:{ + return "SHOTS"; + }break; + case PowerupType::SPEED:{ + return "SPEED"; + }break; + case PowerupType::STOP:{ + return "STOP"; + }break; + } +} + void Editor::Update(float fElapsedTime){ MouseWheelEnemySelection(); RenderLevel(); WaveLayerSelection(); - game->DrawStringDecal({ 2,16 }, "Selected Enemy ("+std::to_string(selectedEnemy) + "): " + game->GetData(selectedEnemy).name, WHITE, {3,3}); + game->DrawStringDecal({ 2,16 }, "Selected Enemy ("+std::to_string(selectedEnemy) + "): " + game->GetData(selectedEnemy).name + (game->GetData(selectedEnemy).powerupDrop!=PowerupType::NONE?"("+GetPowerupName(game->GetData(selectedEnemy).powerupDrop)+")":""), WHITE, {3,3}); game->DrawStringDecal({ 2,(float)game->ScreenHeight() - 50 }, "Layer " + std::to_string(waveLayer), WHITE, { 5,5 }); if (!game->IsTextEntryEnabled()) { if (game->GetKey(F3).bPressed) { diff --git a/Faceball2030/Editor.h b/Faceball2030/Editor.h index e570df0..bee07d7 100644 --- a/Faceball2030/Editor.h +++ b/Faceball2030/Editor.h @@ -6,6 +6,18 @@ enum class FacingDirection { NORTH, EAST, SOUTH, WEST }; +enum class PowerupType { + NONE, + ARMOR, + SPEED, + SHOTS, + STOP, + SHIELD, + CAMO, + MAP, + COIN +}; + enum EnemyID { NONE, EXIT, @@ -15,6 +27,7 @@ enum EnemyID { ISHOOT, ISHOOT2, SHOOTME_ARMOR, + ISHOOT_MAP, SONAR, POWERUP_ARMOR = 56, POWERUP_SPEED = 57, @@ -76,6 +89,7 @@ class Editor { void Update(float fElapsedTime); std::vector> LoadLevel(int level); void OnTextEntryComplete(const std::string& sText); + std::string GetPowerupName(PowerupType type); private: void LoadLevelHandling(); void MouseWheelEnemySelection(); diff --git a/Faceball2030/assets/enemies/IShoot.mtl b/Faceball2030/assets/enemies/IShoot.mtl index b875557..57027cb 100644 --- a/Faceball2030/assets/enemies/IShoot.mtl +++ b/Faceball2030/assets/enemies/IShoot.mtl @@ -1,5 +1,5 @@ # Exported from Wings 3D 2.2.9 -newmtl IShoot +newmtl cone1_auv Ns 19.999999999999996 d 1.0 illum 2 @@ -7,5 +7,5 @@ Kd 1.0 1.0 1.0 Ka 0.0 0.0 0.0 Ks 0.19 0.19 0.19 Ke 0.0 0.0 0.0 -map_Kd IShoot.png +map_Kd cone1_auv.png diff --git a/Faceball2030/assets/enemies/IShoot.obj b/Faceball2030/assets/enemies/IShoot.obj index abd4968..ef20599 100644 --- a/Faceball2030/assets/enemies/IShoot.obj +++ b/Faceball2030/assets/enemies/IShoot.obj @@ -1,595 +1,438 @@ # Exported from Wings 3D 2.2.9 mtllib IShoot.mtl -o sphere1 -#129 vertices, 254 faces -v 0.12858163 0.45401388 1.3359904e-19 -v 0.12611097 0.45401388 2.5085032e-2 -v 0.11879394 0.45401388 4.9206061e-2 -v 0.10691172 0.45401388 7.1436128e-2 -v 9.0920945e-2 0.45401388 9.0920945e-2 -v 7.1436128e-2 0.45401388 0.10691172 -v 4.9206061e-2 0.45401388 0.11879394 -v 2.5085032e-2 0.45401388 0.12611097 -v -8.7613184e-19 0.45401388 0.12858163 -v -2.5085032e-2 0.45401388 0.12611097 -v -4.9206061e-2 0.45401388 0.11879394 -v -7.1436128e-2 0.45401388 0.10691172 -v -9.0920945e-2 0.45401388 9.0920945e-2 -v -0.10691172 0.45401388 7.1436128e-2 -v -0.11879394 0.45401388 4.9206061e-2 -v -0.12611097 0.45401388 2.5085032e-2 -v -0.12858163 0.45401388 1.5880308e-17 -v -0.12611097 0.45401388 -2.5085032e-2 -v -0.11879394 0.45401388 -4.9206061e-2 -v -0.10691172 0.45401388 -7.1436128e-2 -v -9.0920945e-2 0.45401388 -9.0920945e-2 -v -7.1436128e-2 0.45401388 -0.10691172 -v -4.9206061e-2 0.45401388 -0.11879394 -v -2.5085032e-2 0.45401388 -0.12611097 -v -3.2369549e-17 0.45401388 -0.12858163 -v 2.5085032e-2 0.45401388 -0.12611097 -v 4.9206061e-2 0.45401388 -0.11879394 -v 7.1436128e-2 0.45401388 -0.10691172 -v 9.0920945e-2 0.45401388 -9.0920945e-2 -v 0.10691172 0.45401388 -7.1436128e-2 -v 0.11879394 0.45401388 -4.9206061e-2 -v 0.12611097 0.45401388 -2.5085032e-2 -v 0.23758788 0.38117824 1.3359904e-19 -v 0.23302269 0.38117824 4.6351096e-2 -v 0.21950258 0.38117824 9.0920945e-2 -v 0.19754710 0.38117824 0.13199675 -v 0.16800000 0.38117824 0.16800000 -v 0.13199675 0.38117824 0.19754710 -v 9.0920945e-2 0.38117824 0.21950258 -v 4.6351096e-2 0.38117824 0.23302269 -v 5.7985756e-18 0.38117824 0.23758788 -v -4.6351096e-2 0.38117824 0.23302269 -v -9.0920945e-2 0.38117824 0.21950258 -v -0.13199675 0.38117824 0.19754710 -v -0.16800000 0.38117824 0.16800000 -v -0.19754710 0.38117824 0.13199675 -v -0.21950258 0.38117824 9.0920945e-2 -v -0.23302269 0.38117824 4.6351096e-2 -v -0.23758788 0.38117824 2.9229723e-17 -v -0.23302269 0.38117824 -4.6351096e-2 -v -0.21950258 0.38117824 -9.0920945e-2 -v -0.19754710 0.38117824 -0.13199675 -v -0.16800000 0.38117824 -0.16800000 -v -0.13199675 0.38117824 -0.19754710 -v -9.0920945e-2 0.38117824 -0.21950258 -v -4.6351096e-2 0.38117824 -0.23302269 -v -5.2393671e-17 0.38117824 -0.23758788 -v 4.6351096e-2 0.38117824 -0.23302269 -v 9.0920945e-2 0.38117824 -0.21950258 -v 0.13199675 0.38117824 -0.19754710 -v 0.16800000 0.38117824 -0.16800000 -v 0.19754710 0.38117824 -0.13199675 -v 0.21950258 0.38117824 -9.0920945e-2 -v 0.23302269 0.38117824 -4.6351096e-2 -v 0.31042352 0.27217199 1.3359904e-19 -v 0.30445882 0.27217199 6.0560625e-2 -v 0.28679394 0.27217199 0.11879394 -v 0.25810773 0.27217199 0.17246207 -v 0.21950258 0.27217199 0.21950258 -v 0.17246207 0.27217199 0.25810773 -v 0.11879394 0.27217199 0.28679394 -v 6.0560625e-2 0.27217199 0.30445882 -v 1.0258473e-17 0.27217199 0.31042352 -v -6.0560625e-2 0.27217199 0.30445882 -v -0.11879394 0.27217199 0.28679394 -v -0.17246207 0.27217199 0.25810773 -v -0.21950258 0.27217199 0.21950258 -v -0.25810773 0.27217199 0.17246207 -v -0.28679394 0.27217199 0.11879394 -v -0.30445882 0.27217199 6.0560625e-2 -v -0.31042352 0.27217199 3.8149516e-17 -v -0.30445882 0.27217199 -6.0560625e-2 -v -0.28679394 0.27217199 -0.11879394 -v -0.25810773 0.27217199 -0.17246207 -v -0.21950258 0.27217199 -0.21950258 -v -0.17246207 0.27217199 -0.25810773 -v -0.11879394 0.27217199 -0.28679394 -v -6.0560625e-2 0.27217199 -0.30445882 -v -6.5773362e-17 0.27217199 -0.31042352 -v 6.0560625e-2 0.27217199 -0.30445882 -v 0.11879394 0.27217199 -0.28679394 -v 0.17246207 0.27217199 -0.25810773 -v 0.21950258 0.27217199 -0.21950258 -v 0.25810773 0.27217199 -0.17246207 -v 0.28679394 0.27217199 -0.11879394 -v 0.30445882 0.27217199 -6.0560625e-2 -v 0.33600000 1.1788256e-2 1.3359904e-19 -v 0.32954385 1.1788256e-2 6.5550348e-2 -v 0.31042352 1.1788256e-2 0.12858163 -v 0.27937379 1.1788256e-2 0.18667160 -v 0.23758788 1.1788256e-2 0.23758788 -v 0.18667160 1.1788256e-2 0.27937379 -v 0.12858163 1.1788256e-2 0.31042352 -v 6.5550348e-2 1.1788256e-2 0.32954385 -v 1.1824580e-17 1.1788256e-2 0.33600000 -v -6.5550348e-2 1.1788256e-2 0.32954385 -v -0.12858163 1.1788256e-2 0.31042352 -v -0.18667160 1.1788256e-2 0.27937379 -v -0.23758788 1.1788256e-2 0.23758788 -v -0.27937379 1.1788256e-2 0.18667160 -v -0.31042352 1.1788256e-2 0.12858163 -v -0.32954385 1.1788256e-2 6.5550348e-2 -v -0.33600000 1.1788256e-2 4.1281731e-17 -v -0.32954385 1.1788256e-2 -6.5550348e-2 -v -0.31042352 1.1788256e-2 -0.12858163 -v -0.27937379 1.1788256e-2 -0.18667160 -v -0.23758788 1.1788256e-2 -0.23758788 -v -0.18667160 1.1788256e-2 -0.27937379 -v -0.12858163 1.1788256e-2 -0.31042352 -v -6.5550348e-2 1.1788256e-2 -0.32954385 -v -7.0471685e-17 1.1788256e-2 -0.33600000 -v 6.5550348e-2 1.1788256e-2 -0.32954385 -v 0.12858163 1.1788256e-2 -0.31042352 -v 0.18667160 1.1788256e-2 -0.27937379 -v 0.23758788 1.1788256e-2 -0.23758788 -v 0.27937379 1.1788256e-2 -0.18667160 -v 0.31042352 1.1788256e-2 -0.12858163 -v 0.32954385 1.1788256e-2 -6.5550348e-2 -v -8.7494861e-18 0.47959036 1.3359904e-19 -vt 0.0000000e+0 0.19631322 -vt 0.0000000e+0 0.40195081 -vt 0.0000000e+0 0.64275709 -vt 3.7721035e-3 0.15801441 -vt 3.7721035e-3 0.23461203 -vt 1.4943454e-2 0.12118740 -vt 1.4943454e-2 0.27143904 -vt 1.6760480e-2 0.79579376 -vt 1.6760480e-2 0.55498748 -vt 3.3084743e-2 8.7247438e-2 -vt 3.3084743e-2 0.30537900 -vt 3.8432669e-2 0.87423899 -vt 3.8432669e-2 0.63343272 -vt 3.8565900e-2 0.63890696 -vt 3.8565900e-2 0.39810068 -vt 5.2106623e-2 0.79056028 -vt 5.2106623e-2 0.54975400 -vt 5.7498811e-2 5.7498811e-2 -vt 5.7498811e-2 0.33512763 -vt 6.6679363e-2 0.86806867 -vt 6.6679363e-2 0.62726240 -vt 7.7182532e-2 0.63599744 -vt 7.7182532e-2 0.39519116 -vt 8.6610534e-2 0.78686250 -vt 8.6610534e-2 0.54605623 -vt 8.7247438e-2 0.35954170 -vt 8.7247438e-2 3.3084743e-2 -vt 9.5576187e-2 0.86414794 -vt 9.5576187e-2 0.62334167 -vt 0.11584726 0.63414981 -vt 0.11584726 0.39334353 -vt 0.12067916 0.78466943 -vt 0.12067916 0.54386316 -vt 0.12118740 0.37768299 -vt 0.12118740 1.4943454e-2 -vt 0.12493116 0.86202745 -vt 0.12493116 0.62122117 -vt 0.15456859 0.78394568 -vt 0.15456859 0.86147018 -vt 0.15456859 0.63343272 -vt 0.15456859 0.62066390 -vt 0.15456859 0.54313940 -vt 0.15456859 0.39262644 -vt 0.15801441 0.38885434 -vt 0.15801441 3.7721035e-3 -vt 0.18420602 0.86202745 -vt 0.18420602 0.62122117 -vt 0.18845802 0.78466943 -vt 0.18845802 0.54386316 -vt 0.19328993 0.63414981 -vt 0.19328993 0.39334353 -vt 0.19631322 0.39262644 -vt 0.19631322 0.0000000e+0 -vt 0.21356100 0.62334167 -vt 0.21356100 0.86414794 -vt 0.22252665 0.78686250 -vt 0.22252665 0.54605623 -vt 0.23195465 0.63599744 -vt 0.23195465 0.39519116 -vt 0.23461203 0.38885434 -vt 0.23461203 3.7721035e-3 -vt 0.24245782 0.62726240 -vt 0.24245782 0.86806867 -vt 0.25703056 0.79056028 -vt 0.25703056 0.54975400 -vt 0.27057128 0.63890696 -vt 0.27057128 0.39810068 -vt 0.27070451 0.63343272 -vt 0.27070451 0.87423899 -vt 0.27143904 0.37768299 -vt 0.27143904 1.4943454e-2 -vt 0.29237670 0.79579376 -vt 0.29237670 0.55498748 -vt 0.30537900 0.35954170 -vt 0.30537900 3.3084743e-2 -vt 0.30913718 0.64275709 -vt 0.30913718 0.40195081 -vt 0.33512763 0.33512763 -vt 0.33512763 5.7498811e-2 -vt 0.35954170 0.30537900 -vt 0.35954170 8.7247438e-2 -vt 0.37768299 0.27143904 -vt 0.37768299 0.12118740 -vt 0.38885434 0.23461203 -vt 0.38885434 0.15801441 -vt 0.39262644 9.3243714e-3 -vt 0.39262644 0.19631322 -vt 0.39262644 0.25013065 -vt 0.40938692 0.16236104 -vt 0.40938692 0.40316732 -vt 0.43105911 0.48161255 -vt 0.43105911 0.24080628 -vt 0.43119234 5.4742437e-3 -vt 0.43119234 0.24628052 -vt 0.44473306 0.15712756 -vt 0.44473306 0.39793384 -vt 0.45930580 0.47544223 -vt 0.45930580 0.23463596 -vt 0.46980897 0.24337100 -vt 0.46980897 2.5647226e-3 -vt 0.47923697 0.15342979 -vt 0.47923697 0.39423607 -vt 0.48820263 0.47152150 -vt 0.48820263 0.23071523 -vt 0.50847370 0.24152337 -vt 0.50847370 7.1709317e-4 -vt 0.51330560 0.39204299 -vt 0.51330560 0.15123672 -vt 0.51755760 0.46940101 -vt 0.51755760 0.22859473 -vt 0.54719503 0.39131924 -vt 0.54719503 0.15051296 -vt 0.54719503 0.22803746 -vt 0.54719503 0.24080628 -vt 0.54719503 0.46884374 -vt 0.54719503 0.0000000e+0 -vt 0.57683246 0.22859473 -vt 0.57683246 0.46940101 -vt 0.58108446 0.39204299 -vt 0.58108446 0.15123672 -vt 0.58591636 0.24152337 -vt 0.58591636 7.1709317e-4 -vt 0.60618743 0.23071523 -vt 0.60618743 0.47152150 -vt 0.61515309 0.15342979 -vt 0.61515309 0.39423607 -vt 0.62458109 0.24337100 -vt 0.62458109 2.5647226e-3 -vt 0.63508426 0.23463596 -vt 0.63508426 0.47544223 -vt 0.64965700 0.15712756 -vt 0.64965700 0.39793384 -vt 0.66319772 0.24628052 -vt 0.66319772 5.4742437e-3 -vt 0.66333095 0.24080628 -vt 0.66333095 0.48161255 -vt 0.68500314 0.16236104 -vt 0.68500314 0.40316732 -vt 0.70176362 0.25013065 -vt 0.70176362 9.3243714e-3 -vt 0.70176362 0.14760339 -vt 0.70460960 0.17670010 -vt 0.70463677 0.11843187 -vt 0.71303301 0.20463292 -vt 0.71316572 9.0285897e-2 -vt 0.72669211 0.23036134 -vt 0.72744227 6.4573667e-2 -vt 0.74505709 0.25292950 -vt 0.74639130 4.2209259e-2 -vt 0.76742878 0.27149969 -vt 0.76926669 2.4003898e-2 -vt 0.77927928 0.14802626 -vt 0.78057778 0.16199663 -vt 0.78073783 0.13406754 -vt 0.78457587 0.17544060 -vt 0.78490592 0.12066329 -vt 0.79111448 0.18784396 -vt 0.79163105 0.10834178 -vt 0.79296340 0.28538179 -vt 0.79518773 1.0613758e-2 -vt 0.79993963 0.19873453 -vt 0.80063998 9.7580169e-2 -vt 0.81071226 0.20769888 -vt 0.81157598 8.8790328e-2 -vt 0.82070251 0.29405771 -vt 0.82302091 0.21439704 -vt 0.82316940 2.5175483e-3 -vt 0.82401266 8.2305431e-2 -vt 0.83639685 0.21857466 -vt 0.83747008 7.8369108e-2 -vt 0.84960704 0.29719973 -vt 0.85033122 0.22007215 -vt 0.85088181 0.14859987 -vt 0.85143240 7.7127582e-2 -vt 0.85215658 0.0000000e+0 -vt 0.86429354 0.21883062 -vt 0.86536678 7.8625073e-2 -vt 0.87775096 0.21489430 -vt 0.87859422 0.29468218 -vt 0.87874271 8.2802689e-2 -vt 0.88106111 3.1420184e-3 -vt 0.89018764 0.20840940 -vt 0.89105136 8.9500853e-2 -vt 0.90112364 0.19961956 -vt 0.90182399 9.8465201e-2 -vt 0.90657589 0.28658597 -vt 0.90880022 1.1817936e-2 -vt 0.91013258 0.18885795 -vt 0.91064915 0.10935577 -vt 0.91685770 0.17653644 -vt 0.91718775 0.12175913 -vt 0.92102579 0.16313219 -vt 0.92118584 0.13520310 -vt 0.92248434 0.14917347 -vt 0.93249693 0.27319583 -vt 0.93433484 2.5700039e-2 -vt 0.95537232 0.25499047 -vt 0.95670653 4.4270228e-2 -vt 0.97432135 0.23262606 -vt 0.97507151 6.6838391e-2 -vt 0.98859790 0.20691383 -vt 0.98873061 9.2566805e-2 -vt 0.99712686 0.17876786 -vt 0.99715402 0.12049963 -vt 1.00000000 0.14959634 -g sphere1 -usemtl IShoot +o cone1 +#97 vertices, 190 faces +v -0.26956250 0.65053335 -1.3940196e-17 +v -0.26438294 0.65053335 5.2589036e-2 +v -0.24904328 0.65053335 0.10315710 +v -0.22413303 0.65053335 0.14976090 +v -0.19060947 0.65053335 0.19060947 +v -0.14976090 0.65053335 0.22413303 +v -0.10315710 0.65053335 0.24904328 +v -5.2589036e-2 0.65053335 0.26438294 +v -1.0757600e-16 0.65053335 0.26956250 +v 5.2589036e-2 0.65053335 0.26438294 +v 0.10315710 0.65053335 0.24904328 +v 0.14976090 0.65053335 0.22413303 +v 0.19060947 0.65053335 0.19060947 +v 0.22413303 0.65053335 0.14976090 +v 0.24904328 0.65053335 0.10315710 +v 0.26438294 0.65053335 5.2589036e-2 +v 0.26956250 0.65053335 3.1948508e-17 +v 0.26438294 0.65053335 -5.2589036e-2 +v 0.24904328 0.65053335 -0.10315710 +v 0.22413303 0.65053335 -0.14976090 +v 0.19060947 0.65053335 -0.19060947 +v 0.14976090 0.65053335 -0.22413303 +v 0.10315710 0.65053335 -0.24904328 +v 5.2589036e-2 0.65053335 -0.26438294 +v -8.1871519e-17 0.65053335 -0.26956250 +v -5.2589036e-2 0.65053335 -0.26438294 +v -0.10315710 0.65053335 -0.24904328 +v -0.14976090 0.65053335 -0.22413303 +v -0.19060947 0.65053335 -0.19060947 +v -0.22413303 0.65053335 -0.14976090 +v -0.24904328 0.65053335 -0.10315710 +v -0.26438294 0.65053335 -5.2589036e-2 +v -1.3537465e-16 -5.0900207e-3 0.0000000e+0 +v -0.32621092 0.45141295 -2.4888078e-17 +v -0.31994287 0.45141295 6.3640593e-2 +v -0.30137959 0.45141295 0.12483551 +v -0.27123447 0.45141295 0.18123308 +v -0.23066595 0.45141295 0.23066595 +v -0.18123308 0.45141295 0.27123447 +v -0.12483551 0.45141295 0.30137959 +v -6.3640593e-2 0.45141295 0.31994287 +v -8.7641649e-17 0.45141295 0.32621092 +v 6.3640593e-2 0.45141295 0.31994287 +v 0.12483551 0.45141295 0.30137959 +v 0.18123308 0.45141295 0.27123447 +v 0.23066595 0.45141295 0.23066595 +v 0.27123447 0.45141295 0.18123308 +v 0.30137959 0.45141295 0.12483551 +v 0.31994287 0.45141295 6.3640593e-2 +v 0.32621092 0.45141295 -1.4435350e-17 +v 0.31994287 0.45141295 -6.3640593e-2 +v 0.30137959 0.45141295 -0.12483551 +v 0.27123447 0.45141295 -0.18123308 +v 0.23066595 0.45141295 -0.23066595 +v 0.18123308 0.45141295 -0.27123447 +v 0.12483551 0.45141295 -0.30137959 +v 6.3640593e-2 0.45141295 -0.31994287 +v 3.3696400e-17 0.45141295 -0.32621092 +v -6.3640593e-2 0.45141295 -0.31994287 +v -0.12483551 0.45141295 -0.30137959 +v -0.18123308 0.45141295 -0.27123447 +v -0.23066595 0.45141295 -0.23066595 +v -0.27123447 0.45141295 -0.18123308 +v -0.30137959 0.45141295 -0.12483551 +v -0.31994287 0.45141295 -6.3640593e-2 +v -0.29788671 0.60933980 -1.9414137e-17 +v -0.29216290 0.60933980 5.8114814e-2 +v -0.27521143 0.60933980 0.11399631 +v -0.24768375 0.60933980 0.16549699 +v -0.21063771 0.60933980 0.21063771 +v -0.16549699 0.60933980 0.24768375 +v -0.11399631 0.60933980 0.27521143 +v -5.8114814e-2 0.60933980 0.29216290 +v -9.7608827e-17 0.60933980 0.29788671 +v 5.8114814e-2 0.60933980 0.29216290 +v 0.11399631 0.60933980 0.27521143 +v 0.16549699 0.60933980 0.24768375 +v 0.21063771 0.60933980 0.21063771 +v 0.24768375 0.60933980 0.16549699 +v 0.27521143 0.60933980 0.11399631 +v 0.29216290 0.60933980 5.8114814e-2 +v 0.29788671 0.60933980 8.7565786e-18 +v 0.29216290 0.60933980 -5.8114814e-2 +v 0.27521143 0.60933980 -0.11399631 +v 0.24768375 0.60933980 -0.16549699 +v 0.21063771 0.60933980 -0.21063771 +v 0.16549699 0.60933980 -0.24768375 +v 0.11399631 0.60933980 -0.27521143 +v 5.8114814e-2 0.60933980 -0.29216290 +v -2.4087560e-17 0.60933980 -0.29788671 +v -5.8114814e-2 0.60933980 -0.29216290 +v -0.11399631 0.60933980 -0.27521143 +v -0.16549699 0.60933980 -0.24768375 +v -0.21063771 0.60933980 -0.21063771 +v -0.24768375 0.60933980 -0.16549699 +v -0.27521143 0.60933980 -0.11399631 +v -0.29216290 0.60933980 -5.8114814e-2 +vt 0.0000000e+0 0.34726541 +vt 0.0000000e+0 0.70292780 +vt 0.0000000e+0 0.86870894 +vt 8.9330122e-5 0.73174574 +vt 2.5227209e-3 0.89432255 +vt 2.5227209e-3 0.84309532 +vt 3.4363725e-3 0.31865295 +vt 6.7789276e-3 0.61573848 +vt 9.9939370e-3 0.91895185 +vt 9.9939370e-3 0.81846602 +vt 2.0829457e-2 0.23294757 +vt 2.2126533e-2 0.94165034 +vt 2.2126533e-2 0.79576753 +vt 2.9996274e-2 0.35257183 +vt 3.0509436e-2 0.73334314 +vt 3.1769202e-2 0.70512141 +vt 3.4698684e-2 0.32471612 +vt 3.6280235e-2 0.62354290 +vt 3.8454262e-2 0.96154574 +vt 3.8454262e-2 0.77587214 +vt 4.9154585e-2 0.24430200 +vt 5.8349656e-2 0.97787347 +vt 5.8349656e-2 0.75954441 +vt 6.1099150e-2 0.35885524 +vt 6.2147341e-2 0.73577484 +vt 6.3361012e-2 0.70712439 +vt 6.5371405e-2 0.62839600 +vt 6.5808252e-2 0.33056839 +vt 7.7433663e-2 0.25267712 +vt 8.1048147e-2 0.99000606 +vt 8.1048147e-2 0.74741181 +vt 9.3653940e-2 0.36452296 +vt 9.4178424e-2 0.63054084 +vt 9.5150944e-2 0.73741788 +vt 9.5281265e-2 0.70805951 +vt 9.7374419e-2 0.33540101 +vt 0.10567745 0.99747728 +vt 0.10567745 0.73994060 +vt 0.10576200 0.25832954 +vt 0.10673688 0.36870894 +vt 0.12278276 0.63008141 +vt 0.12751873 0.70722588 +vt 0.12762683 0.36856922 +vt 0.12936366 0.73727816 +vt 0.12947177 0.33851694 +vt 0.13129106 1.00000000 +vt 0.13129106 0.73741788 +vt 0.13420774 0.26137247 +vt 0.15025362 0.0000000e+0 +vt 0.15122849 0.62703848 +vt 0.15690468 0.99747728 +vt 0.15690468 0.73994060 +vt 0.15961608 0.70410994 +vt 0.16170923 0.33935058 +vt 0.16183955 0.36870894 +vt 0.16281207 0.26183190 +vt 0.16333656 0.73323190 +vt 0.17955683 0.62138606 +vt 0.18153398 0.99000606 +vt 0.18153398 0.74741181 +vt 0.19118224 0.69927733 +vt 0.19161909 0.25968707 +vt 0.19362948 0.33841545 +vt 0.19484315 0.36706591 +vt 0.19589135 0.72756418 +vt 0.20423247 0.97787347 +vt 0.20423247 0.75954441 +vt 0.20783591 0.61301094 +vt 0.22071026 0.25483396 +vt 0.22229181 0.69342506 +vt 0.22412786 0.96154574 +vt 0.22412786 0.77587214 +vt 0.22522129 0.33641247 +vt 0.22648106 0.36463420 +vt 0.22699422 0.72128076 +vt 0.23616104 0.60165651 +vt 0.24045559 0.94165034 +vt 0.24045559 0.79576753 +vt 0.25021157 0.24702954 +vt 0.25258819 0.91895185 +vt 0.25258819 0.81846602 +vt 0.25355412 0.68736189 +vt 0.25690117 0.36303680 +vt 0.25699050 0.71597435 +vt 0.25699050 0.33421886 +vt 0.25699050 0.33421886 +vt 0.25707983 0.36303680 +vt 0.26005940 0.89432255 +vt 0.26005940 0.84309532 +vt 0.26258212 0.86870894 +vt 0.26376942 0.24702954 +vt 0.28749993 0.36463420 +vt 0.28875970 0.33641247 +vt 0.29327073 0.25483396 +vt 0.31913784 0.36706591 +vt 0.32035151 0.33841545 +vt 0.32236190 0.25968707 +vt 0.35116892 0.26183190 +vt 0.35214144 0.36870894 +vt 0.35227176 0.33935058 +vt 0.36372737 0.0000000e+0 +vt 0.37977326 0.26137247 +vt 0.38450922 0.33851694 +vt 0.38635416 0.36856922 +vt 0.40821899 0.25832954 +vt 0.41660657 0.33540101 +vt 0.42032705 0.36452296 +vt 0.43654733 0.25267712 +vt 0.44817274 0.33056839 +vt 0.45288184 0.35885524 +vt 0.46482641 0.24430200 +vt 0.47928231 0.32471612 +vt 0.48398472 0.35257183 +vt 0.49315153 0.23294757 +vt 0.51054462 0.31865295 +vt 0.51398099 0.33421886 +vt 0.51398099 0.34726541 +vt 0.51407032 0.36303680 +vt 0.52075992 0.24702954 +vt 0.54449043 0.36463420 +vt 0.54575019 0.33641247 +vt 0.55026123 0.25483396 +vt 0.57612833 0.36706591 +vt 0.57734200 0.33841545 +vt 0.57935240 0.25968707 +vt 0.60815941 0.26183190 +vt 0.60913194 0.36870894 +vt 0.60926226 0.33935058 +vt 0.62071787 0.0000000e+0 +vt 0.63676375 0.26137247 +vt 0.64149972 0.33851694 +vt 0.64334465 0.36856922 +vt 0.66520948 0.25832954 +vt 0.67359707 0.33540101 +vt 0.67731755 0.36452296 +vt 0.69353782 0.25267712 +vt 0.70516323 0.33056839 +vt 0.70987234 0.35885524 +vt 0.72181690 0.24430200 +vt 0.73627280 0.32471612 +vt 0.74097521 0.35257183 +vt 0.75014203 0.23294757 +vt 0.76753511 0.31865295 +vt 0.77097149 0.34726541 +g cone1 +usemtl cone1_auv s 1 -f 1/194/ 34/204/ 33/205/ -f 1/194/ 64/203/ 32/192/ -f 1/194/ 129/173/ 2/193/ -f 2/193/ 34/204/ 1/194/ -f 2/193/ 129/173/ 3/191/ -f 3/191/ 34/204/ 2/193/ -f 3/191/ 36/200/ 35/202/ -f 3/191/ 129/173/ 4/189/ -f 4/189/ 36/200/ 3/191/ -f 4/189/ 129/173/ 5/185/ -f 5/185/ 36/200/ 4/189/ -f 5/185/ 38/196/ 37/198/ -f 5/185/ 129/173/ 6/183/ -f 6/183/ 38/196/ 5/185/ -f 6/183/ 129/173/ 7/180/ -f 7/180/ 38/196/ 6/183/ -f 7/180/ 40/181/ 39/187/ -f 7/180/ 129/173/ 8/177/ -f 8/177/ 40/181/ 7/180/ -f 8/177/ 129/173/ 9/174/ -f 9/174/ 40/181/ 8/177/ -f 9/174/ 42/167/ 41/175/ -f 9/174/ 129/173/ 10/170/ -f 10/170/ 42/167/ 9/174/ -f 10/170/ 129/173/ 11/168/ -f 11/168/ 42/167/ 10/170/ -f 11/168/ 44/151/ 43/160/ -f 11/168/ 129/173/ 12/164/ -f 12/164/ 44/151/ 11/168/ -f 12/164/ 129/173/ 13/162/ -f 13/162/ 44/151/ 12/164/ -f 13/162/ 46/147/ 45/149/ -f 13/162/ 129/173/ 14/158/ -f 14/158/ 46/147/ 13/162/ -f 14/158/ 129/173/ 15/156/ -f 15/156/ 46/147/ 14/158/ -f 15/156/ 48/143/ 47/145/ -f 15/156/ 129/173/ 16/154/ -f 16/154/ 48/143/ 15/156/ -f 16/154/ 129/173/ 17/152/ -f 17/152/ 48/143/ 16/154/ -f 17/152/ 50/142/ 49/141/ -f 17/152/ 129/173/ 18/153/ -f 18/153/ 50/142/ 17/152/ -f 18/153/ 129/173/ 19/155/ -f 19/155/ 50/142/ 18/153/ -f 19/155/ 52/146/ 51/144/ -f 19/155/ 129/173/ 20/157/ -f 20/157/ 52/146/ 19/155/ -f 20/157/ 129/173/ 21/161/ -f 21/161/ 52/146/ 20/157/ -f 21/161/ 54/150/ 53/148/ -f 21/161/ 129/173/ 22/163/ -f 22/163/ 54/150/ 21/161/ -f 22/163/ 129/173/ 23/166/ -f 23/166/ 54/150/ 22/163/ -f 23/166/ 56/165/ 55/159/ -f 23/166/ 129/173/ 24/169/ -f 24/169/ 56/165/ 23/166/ -f 24/169/ 129/173/ 25/172/ -f 25/172/ 56/165/ 24/169/ -f 25/172/ 58/179/ 57/171/ -f 25/172/ 129/173/ 26/176/ -f 26/176/ 58/179/ 25/172/ -f 26/176/ 129/173/ 27/178/ -f 27/178/ 58/179/ 26/176/ -f 27/178/ 60/195/ 59/186/ -f 27/178/ 129/173/ 28/182/ -f 28/182/ 60/195/ 27/178/ -f 28/182/ 129/173/ 29/184/ -f 29/184/ 60/195/ 28/182/ -f 29/184/ 62/199/ 61/197/ -f 29/184/ 129/173/ 30/188/ -f 30/188/ 62/199/ 29/184/ -f 30/188/ 129/173/ 31/190/ -f 31/190/ 62/199/ 30/188/ -f 31/190/ 64/203/ 63/201/ -f 31/190/ 129/173/ 32/192/ -f 32/192/ 64/203/ 31/190/ -f 32/192/ 129/173/ 1/194/ -f 33/205/ 64/203/ 1/194/ -f 33/113/ 65/112/ 64/117/ -f 34/110/ 65/112/ 33/113/ -f 34/110/ 67/101/ 66/108/ -f 35/202/ 34/204/ 3/191/ -f 35/104/ 67/101/ 34/110/ -f 36/98/ 67/101/ 35/104/ -f 36/98/ 69/89/ 68/95/ -f 37/198/ 36/200/ 5/185/ -f 37/92/ 69/89/ 36/98/ -f 38/130/ 69/138/ 37/136/ -f 38/130/ 71/126/ 70/132/ -f 39/187/ 38/196/ 7/180/ -f 39/124/ 71/126/ 38/130/ -f 40/118/ 71/126/ 39/124/ -f 40/118/ 73/111/ 72/119/ -f 41/175/ 40/181/ 9/174/ -f 41/115/ 73/111/ 40/118/ -f 42/109/ 73/111/ 41/115/ -f 42/109/ 75/102/ 74/107/ -f 43/160/ 42/167/ 11/168/ -f 43/103/ 75/102/ 42/109/ -f 44/97/ 75/102/ 43/103/ -f 44/97/ 77/90/ 76/96/ -f 45/149/ 44/151/ 13/162/ -f 45/91/ 77/90/ 44/97/ -f 46/63/ 77/72/ 45/69/ -f 46/63/ 79/56/ 78/64/ -f 47/145/ 46/147/ 15/156/ -f 47/55/ 79/56/ 46/63/ -f 48/46/ 79/56/ 47/55/ -f 48/46/ 81/38/ 80/48/ -f 49/141/ 48/143/ 17/152/ -f 49/39/ 81/38/ 48/46/ -f 50/36/ 81/38/ 49/39/ -f 50/36/ 83/24/ 82/32/ -f 51/144/ 50/142/ 19/155/ -f 51/28/ 83/24/ 50/36/ -f 52/20/ 83/24/ 51/28/ -f 52/20/ 85/8/ 84/16/ -f 53/148/ 52/146/ 21/161/ -f 53/12/ 85/8/ 52/20/ -f 54/62/ 85/73/ 53/68/ -f 54/62/ 87/57/ 86/65/ -f 55/159/ 54/150/ 23/166/ -f 55/54/ 87/57/ 54/62/ -f 56/47/ 87/57/ 55/54/ -f 56/47/ 89/42/ 88/49/ -f 57/171/ 56/165/ 25/172/ -f 57/41/ 89/42/ 56/47/ -f 58/37/ 89/42/ 57/41/ -f 58/37/ 91/25/ 90/33/ -f 59/186/ 58/179/ 27/178/ -f 59/29/ 91/25/ 58/37/ -f 60/21/ 91/25/ 59/29/ -f 60/21/ 93/9/ 92/17/ -f 61/197/ 60/195/ 29/184/ -f 61/13/ 93/9/ 60/21/ -f 62/129/ 93/137/ 61/135/ -f 62/129/ 95/125/ 94/131/ -f 63/201/ 62/199/ 31/190/ -f 63/123/ 95/125/ 62/129/ -f 64/117/ 65/112/ 96/120/ -f 64/117/ 95/125/ 63/123/ -f 65/112/ 98/106/ 97/116/ -f 65/112/ 128/122/ 96/120/ -f 66/108/ 65/112/ 34/110/ -f 66/108/ 98/106/ 65/112/ -f 67/101/ 98/106/ 66/108/ -f 67/101/ 100/93/ 99/100/ -f 68/95/ 67/101/ 36/98/ -f 68/95/ 100/93/ 67/101/ -f 69/89/ 100/93/ 68/95/ -f 69/138/ 102/133/ 101/139/ -f 70/132/ 69/138/ 38/130/ -f 70/132/ 102/133/ 69/138/ -f 71/126/ 102/133/ 70/132/ -f 71/126/ 104/121/ 103/127/ -f 72/119/ 71/126/ 40/118/ -f 72/119/ 104/121/ 71/126/ -f 73/111/ 104/121/ 72/119/ -f 73/111/ 106/105/ 105/114/ -f 74/107/ 73/111/ 42/109/ -f 74/107/ 106/105/ 73/111/ -f 75/102/ 106/105/ 74/107/ -f 75/102/ 108/94/ 107/99/ -f 76/96/ 75/102/ 44/97/ -f 76/96/ 108/94/ 75/102/ -f 77/90/ 108/94/ 76/96/ -f 77/72/ 110/66/ 109/76/ -f 78/64/ 77/72/ 46/63/ -f 78/64/ 110/66/ 77/72/ -f 79/56/ 110/66/ 78/64/ -f 79/56/ 112/50/ 111/58/ -f 80/48/ 79/56/ 48/46/ -f 80/48/ 112/50/ 79/56/ -f 81/38/ 112/50/ 80/48/ -f 81/38/ 114/30/ 113/40/ -f 82/32/ 81/38/ 50/36/ -f 82/32/ 114/30/ 81/38/ -f 83/24/ 114/30/ 82/32/ -f 83/24/ 116/14/ 115/22/ -f 84/16/ 83/24/ 52/20/ -f 84/16/ 116/14/ 83/24/ -f 85/8/ 116/14/ 84/16/ -f 85/73/ 118/67/ 117/77/ -f 86/65/ 85/73/ 54/62/ -f 86/65/ 118/67/ 85/73/ -f 87/57/ 118/67/ 86/65/ -f 87/57/ 120/51/ 119/59/ -f 88/49/ 87/57/ 56/47/ -f 88/49/ 120/51/ 87/57/ -f 89/42/ 120/51/ 88/49/ -f 89/42/ 122/31/ 121/43/ -f 90/33/ 89/42/ 58/37/ -f 90/33/ 122/31/ 89/42/ -f 91/25/ 122/31/ 90/33/ -f 91/25/ 124/15/ 123/23/ -f 92/17/ 91/25/ 60/21/ -f 92/17/ 124/15/ 91/25/ -f 93/9/ 124/15/ 92/17/ -f 93/137/ 126/134/ 125/140/ -f 94/131/ 93/137/ 62/129/ -f 94/131/ 126/134/ 93/137/ -f 95/125/ 126/134/ 94/131/ -f 95/125/ 128/122/ 127/128/ -f 96/120/ 95/125/ 64/117/ -f 96/120/ 128/122/ 95/125/ -f 97/116/ 128/122/ 65/112/ -f 98/4/ 128/5/ 97/1/ -f 99/100/ 98/106/ 67/101/ -f 99/6/ 127/7/ 98/4/ -f 100/10/ 126/11/ 99/6/ -f 101/86/ 100/93/ 69/89/ -f 101/18/ 125/19/ 100/10/ -f 102/27/ 124/26/ 101/18/ -f 103/127/ 102/133/ 71/126/ -f 103/35/ 123/34/ 102/27/ -f 104/45/ 122/44/ 103/35/ -f 105/114/ 104/121/ 73/111/ -f 105/53/ 121/52/ 104/45/ -f 106/61/ 120/60/ 105/53/ -f 107/99/ 106/105/ 75/102/ -f 107/71/ 119/70/ 106/61/ -f 108/75/ 118/74/ 107/71/ -f 109/88/ 108/94/ 77/90/ -f 109/79/ 117/78/ 108/75/ -f 110/81/ 116/80/ 109/79/ -f 111/58/ 110/66/ 79/56/ -f 111/83/ 115/82/ 110/81/ -f 112/85/ 114/84/ 111/83/ -f 113/40/ 112/50/ 81/38/ -f 113/87/ 114/84/ 112/85/ -f 115/82/ 111/83/ 114/84/ -f 115/22/ 114/30/ 83/24/ -f 116/80/ 110/81/ 115/82/ -f 117/78/ 109/79/ 116/80/ -f 117/3/ 116/14/ 85/8/ -f 118/74/ 108/75/ 117/78/ -f 119/70/ 107/71/ 118/74/ -f 119/59/ 118/67/ 87/57/ -f 120/60/ 106/61/ 119/70/ -f 121/52/ 105/53/ 120/60/ -f 121/43/ 120/51/ 89/42/ -f 122/44/ 104/45/ 121/52/ -f 123/34/ 103/35/ 122/44/ -f 123/23/ 122/31/ 91/25/ -f 124/26/ 102/27/ 123/34/ -f 125/19/ 101/18/ 124/26/ -f 125/2/ 124/15/ 93/9/ -f 126/11/ 100/10/ 125/19/ -f 127/7/ 99/6/ 126/11/ -f 127/128/ 126/134/ 95/125/ -f 128/5/ 98/4/ 127/7/ +f 1/3/ 30/12/ 32/5/ +f 1/43/ 67/54/ 2/55/ +f 1/43/ 97/36/ 66/45/ +f 2/6/ 28/22/ 1/3/ +f 2/55/ 67/54/ 3/64/ +f 3/10/ 28/22/ 2/6/ +f 3/64/ 67/54/ 68/63/ +f 3/64/ 69/73/ 4/74/ +f 4/13/ 26/37/ 3/10/ +f 4/74/ 69/73/ 5/83/ +f 5/20/ 26/37/ 4/13/ +f 5/83/ 69/73/ 70/85/ +f 5/87/ 71/93/ 6/92/ +f 6/23/ 24/51/ 5/20/ +f 6/92/ 71/93/ 7/95/ +f 7/31/ 24/51/ 6/23/ +f 7/95/ 71/93/ 72/96/ +f 7/95/ 73/100/ 8/99/ +f 8/38/ 22/66/ 7/31/ +f 8/99/ 73/100/ 9/104/ +f 9/47/ 22/66/ 8/38/ +f 9/104/ 73/100/ 74/103/ +f 9/104/ 75/106/ 10/107/ +f 10/52/ 20/77/ 9/47/ +f 10/107/ 75/106/ 11/110/ +f 11/60/ 20/77/ 10/52/ +f 11/110/ 75/106/ 76/109/ +f 11/110/ 77/112/ 12/113/ +f 12/67/ 18/88/ 11/60/ +f 12/113/ 77/112/ 13/117/ +f 13/72/ 18/88/ 12/67/ +f 13/117/ 77/112/ 78/115/ +f 13/118/ 78/116/ 14/120/ +f 14/78/ 16/89/ 13/72/ +f 14/120/ 78/116/ 79/121/ +f 14/120/ 80/124/ 15/123/ +f 15/81/ 16/89/ 14/78/ +f 15/123/ 80/124/ 16/127/ +f 16/127/ 80/124/ 81/128/ +f 16/127/ 82/131/ 17/132/ +f 17/90/ 13/72/ 16/89/ +f 17/132/ 82/131/ 18/135/ +f 18/88/ 13/72/ 17/90/ +f 18/135/ 82/131/ 83/134/ +f 18/135/ 84/137/ 19/138/ +f 19/80/ 11/60/ 18/88/ +f 19/138/ 84/137/ 20/141/ +f 20/77/ 11/60/ 19/80/ +f 20/141/ 84/137/ 85/140/ +f 20/141/ 86/143/ 21/144/ +f 21/71/ 9/47/ 20/77/ +f 21/4/ 86/2/ 22/15/ +f 22/66/ 9/47/ 21/71/ +f 22/15/ 86/2/ 87/16/ +f 22/15/ 88/26/ 23/25/ +f 23/59/ 7/31/ 22/66/ +f 23/25/ 88/26/ 24/34/ +f 24/51/ 7/31/ 23/59/ +f 24/34/ 88/26/ 89/35/ +f 24/34/ 90/42/ 25/44/ +f 25/46/ 5/20/ 24/51/ +f 25/44/ 90/42/ 26/57/ +f 26/37/ 5/20/ 25/46/ +f 26/57/ 90/42/ 91/53/ +f 26/57/ 92/61/ 27/65/ +f 27/30/ 3/10/ 26/37/ +f 27/65/ 92/61/ 28/75/ +f 28/22/ 3/10/ 27/30/ +f 28/75/ 92/61/ 93/70/ +f 28/75/ 94/82/ 29/84/ +f 29/19/ 1/3/ 28/22/ +f 29/1/ 94/7/ 30/14/ +f 30/12/ 1/3/ 29/19/ +f 30/14/ 94/7/ 95/17/ +f 30/14/ 96/28/ 31/24/ +f 31/9/ 32/5/ 30/12/ +f 31/24/ 96/28/ 32/32/ +f 32/32/ 96/28/ 97/36/ +f 32/32/ 97/36/ 1/43/ +f 33/49/ 35/56/ 34/48/ +f 33/49/ 36/62/ 35/56/ +f 33/49/ 37/69/ 36/62/ +f 33/49/ 38/79/ 37/69/ +f 33/101/ 39/94/ 38/91/ +f 33/101/ 40/97/ 39/94/ +f 33/101/ 41/98/ 40/97/ +f 33/101/ 42/102/ 41/98/ +f 33/101/ 43/105/ 42/102/ +f 33/101/ 44/108/ 43/105/ +f 33/101/ 45/111/ 44/108/ +f 33/101/ 46/114/ 45/111/ +f 33/129/ 47/122/ 46/119/ +f 33/129/ 48/125/ 47/122/ +f 33/129/ 49/126/ 48/125/ +f 33/129/ 50/130/ 49/126/ +f 33/129/ 51/133/ 50/130/ +f 33/129/ 52/136/ 51/133/ +f 33/129/ 53/139/ 52/136/ +f 33/129/ 54/142/ 53/139/ +f 33/40/ 55/18/ 54/8/ +f 33/40/ 56/27/ 55/18/ +f 33/40/ 57/33/ 56/27/ +f 33/40/ 58/41/ 57/33/ +f 33/40/ 59/50/ 58/41/ +f 33/40/ 60/58/ 59/50/ +f 33/40/ 61/68/ 60/58/ +f 33/40/ 62/76/ 61/68/ +f 33/49/ 63/21/ 62/11/ +f 33/49/ 64/29/ 63/21/ +f 33/49/ 65/39/ 64/29/ +f 34/48/ 65/39/ 33/49/ +f 34/48/ 67/54/ 66/45/ +f 35/56/ 36/62/ 67/54/ +f 36/62/ 69/73/ 68/63/ +f 37/69/ 38/79/ 69/73/ +f 38/91/ 71/93/ 70/86/ +f 39/94/ 40/97/ 71/93/ +f 40/97/ 73/100/ 72/96/ +f 41/98/ 73/100/ 40/97/ +f 42/102/ 73/100/ 41/98/ +f 42/102/ 75/106/ 74/103/ +f 43/105/ 44/108/ 75/106/ +f 44/108/ 77/112/ 76/109/ +f 45/111/ 78/115/ 77/112/ +f 46/119/ 47/122/ 78/116/ +f 47/122/ 80/124/ 79/121/ +f 48/125/ 49/126/ 80/124/ +f 49/126/ 82/131/ 81/128/ +f 50/130/ 51/133/ 82/131/ +f 51/133/ 84/137/ 83/134/ +f 52/136/ 53/139/ 84/137/ +f 53/139/ 86/143/ 85/140/ +f 54/8/ 55/18/ 86/2/ +f 55/18/ 88/26/ 87/16/ +f 56/27/ 57/33/ 88/26/ +f 57/33/ 90/42/ 89/35/ +f 59/50/ 90/42/ 58/41/ +f 59/50/ 92/61/ 91/53/ +f 60/58/ 61/68/ 92/61/ +f 60/58/ 92/61/ 59/50/ +f 61/68/ 94/82/ 93/70/ +f 62/11/ 63/21/ 94/7/ +f 63/21/ 96/28/ 95/17/ +f 64/29/ 97/36/ 96/28/ +f 65/39/ 34/48/ 97/36/ +f 66/45/ 67/54/ 1/43/ +f 66/45/ 97/36/ 34/48/ +f 67/54/ 34/48/ 35/56/ +f 68/63/ 67/54/ 36/62/ +f 68/63/ 69/73/ 3/64/ +f 69/73/ 36/62/ 37/69/ +f 70/85/ 69/73/ 38/79/ +f 70/86/ 71/93/ 5/87/ +f 71/93/ 38/91/ 39/94/ +f 72/96/ 71/93/ 40/97/ +f 72/96/ 73/100/ 7/95/ +f 74/103/ 73/100/ 42/102/ +f 74/103/ 75/106/ 9/104/ +f 75/106/ 42/102/ 43/105/ +f 76/109/ 75/106/ 44/108/ +f 76/109/ 77/112/ 11/110/ +f 77/112/ 44/108/ 45/111/ +f 78/115/ 45/111/ 46/114/ +f 79/121/ 78/116/ 47/122/ +f 79/121/ 80/124/ 14/120/ +f 80/124/ 47/122/ 48/125/ +f 81/128/ 80/124/ 49/126/ +f 81/128/ 82/131/ 16/127/ +f 82/131/ 49/126/ 50/130/ +f 83/134/ 82/131/ 51/133/ +f 83/134/ 84/137/ 18/135/ +f 84/137/ 51/133/ 52/136/ +f 85/140/ 84/137/ 53/139/ +f 85/140/ 86/143/ 20/141/ +f 86/143/ 53/139/ 54/142/ +f 87/16/ 86/2/ 55/18/ +f 87/16/ 88/26/ 22/15/ +f 88/26/ 55/18/ 56/27/ +f 89/35/ 88/26/ 57/33/ +f 89/35/ 90/42/ 24/34/ +f 90/42/ 57/33/ 58/41/ +f 91/53/ 90/42/ 59/50/ +f 91/53/ 92/61/ 26/57/ +f 93/70/ 92/61/ 61/68/ +f 93/70/ 94/82/ 28/75/ +f 94/82/ 61/68/ 62/76/ +f 95/17/ 94/7/ 63/21/ +f 95/17/ 96/28/ 30/14/ +f 96/28/ 63/21/ 64/29/ +f 97/36/ 64/29/ 65/39/ diff --git a/Faceball2030/assets/enemies/IShoot.png b/Faceball2030/assets/enemies/IShoot.png index 2d8f5a7..7faa4e0 100644 Binary files a/Faceball2030/assets/enemies/IShoot.png and b/Faceball2030/assets/enemies/IShoot.png differ diff --git a/Faceball2030/assets/enemies/IShoot.wings b/Faceball2030/assets/enemies/IShoot.wings index 5f3fafa..1062898 100644 Binary files a/Faceball2030/assets/enemies/IShoot.wings and b/Faceball2030/assets/enemies/IShoot.wings differ diff --git a/Faceball2030/assets/enemies/ShootMe2.obj b/Faceball2030/assets/enemies/ShootMe2.obj new file mode 100644 index 0000000..abd4968 --- /dev/null +++ b/Faceball2030/assets/enemies/ShootMe2.obj @@ -0,0 +1,595 @@ +# Exported from Wings 3D 2.2.9 +mtllib IShoot.mtl +o sphere1 +#129 vertices, 254 faces +v 0.12858163 0.45401388 1.3359904e-19 +v 0.12611097 0.45401388 2.5085032e-2 +v 0.11879394 0.45401388 4.9206061e-2 +v 0.10691172 0.45401388 7.1436128e-2 +v 9.0920945e-2 0.45401388 9.0920945e-2 +v 7.1436128e-2 0.45401388 0.10691172 +v 4.9206061e-2 0.45401388 0.11879394 +v 2.5085032e-2 0.45401388 0.12611097 +v -8.7613184e-19 0.45401388 0.12858163 +v -2.5085032e-2 0.45401388 0.12611097 +v -4.9206061e-2 0.45401388 0.11879394 +v -7.1436128e-2 0.45401388 0.10691172 +v -9.0920945e-2 0.45401388 9.0920945e-2 +v -0.10691172 0.45401388 7.1436128e-2 +v -0.11879394 0.45401388 4.9206061e-2 +v -0.12611097 0.45401388 2.5085032e-2 +v -0.12858163 0.45401388 1.5880308e-17 +v -0.12611097 0.45401388 -2.5085032e-2 +v -0.11879394 0.45401388 -4.9206061e-2 +v -0.10691172 0.45401388 -7.1436128e-2 +v -9.0920945e-2 0.45401388 -9.0920945e-2 +v -7.1436128e-2 0.45401388 -0.10691172 +v -4.9206061e-2 0.45401388 -0.11879394 +v -2.5085032e-2 0.45401388 -0.12611097 +v -3.2369549e-17 0.45401388 -0.12858163 +v 2.5085032e-2 0.45401388 -0.12611097 +v 4.9206061e-2 0.45401388 -0.11879394 +v 7.1436128e-2 0.45401388 -0.10691172 +v 9.0920945e-2 0.45401388 -9.0920945e-2 +v 0.10691172 0.45401388 -7.1436128e-2 +v 0.11879394 0.45401388 -4.9206061e-2 +v 0.12611097 0.45401388 -2.5085032e-2 +v 0.23758788 0.38117824 1.3359904e-19 +v 0.23302269 0.38117824 4.6351096e-2 +v 0.21950258 0.38117824 9.0920945e-2 +v 0.19754710 0.38117824 0.13199675 +v 0.16800000 0.38117824 0.16800000 +v 0.13199675 0.38117824 0.19754710 +v 9.0920945e-2 0.38117824 0.21950258 +v 4.6351096e-2 0.38117824 0.23302269 +v 5.7985756e-18 0.38117824 0.23758788 +v -4.6351096e-2 0.38117824 0.23302269 +v -9.0920945e-2 0.38117824 0.21950258 +v -0.13199675 0.38117824 0.19754710 +v -0.16800000 0.38117824 0.16800000 +v -0.19754710 0.38117824 0.13199675 +v -0.21950258 0.38117824 9.0920945e-2 +v -0.23302269 0.38117824 4.6351096e-2 +v -0.23758788 0.38117824 2.9229723e-17 +v -0.23302269 0.38117824 -4.6351096e-2 +v -0.21950258 0.38117824 -9.0920945e-2 +v -0.19754710 0.38117824 -0.13199675 +v -0.16800000 0.38117824 -0.16800000 +v -0.13199675 0.38117824 -0.19754710 +v -9.0920945e-2 0.38117824 -0.21950258 +v -4.6351096e-2 0.38117824 -0.23302269 +v -5.2393671e-17 0.38117824 -0.23758788 +v 4.6351096e-2 0.38117824 -0.23302269 +v 9.0920945e-2 0.38117824 -0.21950258 +v 0.13199675 0.38117824 -0.19754710 +v 0.16800000 0.38117824 -0.16800000 +v 0.19754710 0.38117824 -0.13199675 +v 0.21950258 0.38117824 -9.0920945e-2 +v 0.23302269 0.38117824 -4.6351096e-2 +v 0.31042352 0.27217199 1.3359904e-19 +v 0.30445882 0.27217199 6.0560625e-2 +v 0.28679394 0.27217199 0.11879394 +v 0.25810773 0.27217199 0.17246207 +v 0.21950258 0.27217199 0.21950258 +v 0.17246207 0.27217199 0.25810773 +v 0.11879394 0.27217199 0.28679394 +v 6.0560625e-2 0.27217199 0.30445882 +v 1.0258473e-17 0.27217199 0.31042352 +v -6.0560625e-2 0.27217199 0.30445882 +v -0.11879394 0.27217199 0.28679394 +v -0.17246207 0.27217199 0.25810773 +v -0.21950258 0.27217199 0.21950258 +v -0.25810773 0.27217199 0.17246207 +v -0.28679394 0.27217199 0.11879394 +v -0.30445882 0.27217199 6.0560625e-2 +v -0.31042352 0.27217199 3.8149516e-17 +v -0.30445882 0.27217199 -6.0560625e-2 +v -0.28679394 0.27217199 -0.11879394 +v -0.25810773 0.27217199 -0.17246207 +v -0.21950258 0.27217199 -0.21950258 +v -0.17246207 0.27217199 -0.25810773 +v -0.11879394 0.27217199 -0.28679394 +v -6.0560625e-2 0.27217199 -0.30445882 +v -6.5773362e-17 0.27217199 -0.31042352 +v 6.0560625e-2 0.27217199 -0.30445882 +v 0.11879394 0.27217199 -0.28679394 +v 0.17246207 0.27217199 -0.25810773 +v 0.21950258 0.27217199 -0.21950258 +v 0.25810773 0.27217199 -0.17246207 +v 0.28679394 0.27217199 -0.11879394 +v 0.30445882 0.27217199 -6.0560625e-2 +v 0.33600000 1.1788256e-2 1.3359904e-19 +v 0.32954385 1.1788256e-2 6.5550348e-2 +v 0.31042352 1.1788256e-2 0.12858163 +v 0.27937379 1.1788256e-2 0.18667160 +v 0.23758788 1.1788256e-2 0.23758788 +v 0.18667160 1.1788256e-2 0.27937379 +v 0.12858163 1.1788256e-2 0.31042352 +v 6.5550348e-2 1.1788256e-2 0.32954385 +v 1.1824580e-17 1.1788256e-2 0.33600000 +v -6.5550348e-2 1.1788256e-2 0.32954385 +v -0.12858163 1.1788256e-2 0.31042352 +v -0.18667160 1.1788256e-2 0.27937379 +v -0.23758788 1.1788256e-2 0.23758788 +v -0.27937379 1.1788256e-2 0.18667160 +v -0.31042352 1.1788256e-2 0.12858163 +v -0.32954385 1.1788256e-2 6.5550348e-2 +v -0.33600000 1.1788256e-2 4.1281731e-17 +v -0.32954385 1.1788256e-2 -6.5550348e-2 +v -0.31042352 1.1788256e-2 -0.12858163 +v -0.27937379 1.1788256e-2 -0.18667160 +v -0.23758788 1.1788256e-2 -0.23758788 +v -0.18667160 1.1788256e-2 -0.27937379 +v -0.12858163 1.1788256e-2 -0.31042352 +v -6.5550348e-2 1.1788256e-2 -0.32954385 +v -7.0471685e-17 1.1788256e-2 -0.33600000 +v 6.5550348e-2 1.1788256e-2 -0.32954385 +v 0.12858163 1.1788256e-2 -0.31042352 +v 0.18667160 1.1788256e-2 -0.27937379 +v 0.23758788 1.1788256e-2 -0.23758788 +v 0.27937379 1.1788256e-2 -0.18667160 +v 0.31042352 1.1788256e-2 -0.12858163 +v 0.32954385 1.1788256e-2 -6.5550348e-2 +v -8.7494861e-18 0.47959036 1.3359904e-19 +vt 0.0000000e+0 0.19631322 +vt 0.0000000e+0 0.40195081 +vt 0.0000000e+0 0.64275709 +vt 3.7721035e-3 0.15801441 +vt 3.7721035e-3 0.23461203 +vt 1.4943454e-2 0.12118740 +vt 1.4943454e-2 0.27143904 +vt 1.6760480e-2 0.79579376 +vt 1.6760480e-2 0.55498748 +vt 3.3084743e-2 8.7247438e-2 +vt 3.3084743e-2 0.30537900 +vt 3.8432669e-2 0.87423899 +vt 3.8432669e-2 0.63343272 +vt 3.8565900e-2 0.63890696 +vt 3.8565900e-2 0.39810068 +vt 5.2106623e-2 0.79056028 +vt 5.2106623e-2 0.54975400 +vt 5.7498811e-2 5.7498811e-2 +vt 5.7498811e-2 0.33512763 +vt 6.6679363e-2 0.86806867 +vt 6.6679363e-2 0.62726240 +vt 7.7182532e-2 0.63599744 +vt 7.7182532e-2 0.39519116 +vt 8.6610534e-2 0.78686250 +vt 8.6610534e-2 0.54605623 +vt 8.7247438e-2 0.35954170 +vt 8.7247438e-2 3.3084743e-2 +vt 9.5576187e-2 0.86414794 +vt 9.5576187e-2 0.62334167 +vt 0.11584726 0.63414981 +vt 0.11584726 0.39334353 +vt 0.12067916 0.78466943 +vt 0.12067916 0.54386316 +vt 0.12118740 0.37768299 +vt 0.12118740 1.4943454e-2 +vt 0.12493116 0.86202745 +vt 0.12493116 0.62122117 +vt 0.15456859 0.78394568 +vt 0.15456859 0.86147018 +vt 0.15456859 0.63343272 +vt 0.15456859 0.62066390 +vt 0.15456859 0.54313940 +vt 0.15456859 0.39262644 +vt 0.15801441 0.38885434 +vt 0.15801441 3.7721035e-3 +vt 0.18420602 0.86202745 +vt 0.18420602 0.62122117 +vt 0.18845802 0.78466943 +vt 0.18845802 0.54386316 +vt 0.19328993 0.63414981 +vt 0.19328993 0.39334353 +vt 0.19631322 0.39262644 +vt 0.19631322 0.0000000e+0 +vt 0.21356100 0.62334167 +vt 0.21356100 0.86414794 +vt 0.22252665 0.78686250 +vt 0.22252665 0.54605623 +vt 0.23195465 0.63599744 +vt 0.23195465 0.39519116 +vt 0.23461203 0.38885434 +vt 0.23461203 3.7721035e-3 +vt 0.24245782 0.62726240 +vt 0.24245782 0.86806867 +vt 0.25703056 0.79056028 +vt 0.25703056 0.54975400 +vt 0.27057128 0.63890696 +vt 0.27057128 0.39810068 +vt 0.27070451 0.63343272 +vt 0.27070451 0.87423899 +vt 0.27143904 0.37768299 +vt 0.27143904 1.4943454e-2 +vt 0.29237670 0.79579376 +vt 0.29237670 0.55498748 +vt 0.30537900 0.35954170 +vt 0.30537900 3.3084743e-2 +vt 0.30913718 0.64275709 +vt 0.30913718 0.40195081 +vt 0.33512763 0.33512763 +vt 0.33512763 5.7498811e-2 +vt 0.35954170 0.30537900 +vt 0.35954170 8.7247438e-2 +vt 0.37768299 0.27143904 +vt 0.37768299 0.12118740 +vt 0.38885434 0.23461203 +vt 0.38885434 0.15801441 +vt 0.39262644 9.3243714e-3 +vt 0.39262644 0.19631322 +vt 0.39262644 0.25013065 +vt 0.40938692 0.16236104 +vt 0.40938692 0.40316732 +vt 0.43105911 0.48161255 +vt 0.43105911 0.24080628 +vt 0.43119234 5.4742437e-3 +vt 0.43119234 0.24628052 +vt 0.44473306 0.15712756 +vt 0.44473306 0.39793384 +vt 0.45930580 0.47544223 +vt 0.45930580 0.23463596 +vt 0.46980897 0.24337100 +vt 0.46980897 2.5647226e-3 +vt 0.47923697 0.15342979 +vt 0.47923697 0.39423607 +vt 0.48820263 0.47152150 +vt 0.48820263 0.23071523 +vt 0.50847370 0.24152337 +vt 0.50847370 7.1709317e-4 +vt 0.51330560 0.39204299 +vt 0.51330560 0.15123672 +vt 0.51755760 0.46940101 +vt 0.51755760 0.22859473 +vt 0.54719503 0.39131924 +vt 0.54719503 0.15051296 +vt 0.54719503 0.22803746 +vt 0.54719503 0.24080628 +vt 0.54719503 0.46884374 +vt 0.54719503 0.0000000e+0 +vt 0.57683246 0.22859473 +vt 0.57683246 0.46940101 +vt 0.58108446 0.39204299 +vt 0.58108446 0.15123672 +vt 0.58591636 0.24152337 +vt 0.58591636 7.1709317e-4 +vt 0.60618743 0.23071523 +vt 0.60618743 0.47152150 +vt 0.61515309 0.15342979 +vt 0.61515309 0.39423607 +vt 0.62458109 0.24337100 +vt 0.62458109 2.5647226e-3 +vt 0.63508426 0.23463596 +vt 0.63508426 0.47544223 +vt 0.64965700 0.15712756 +vt 0.64965700 0.39793384 +vt 0.66319772 0.24628052 +vt 0.66319772 5.4742437e-3 +vt 0.66333095 0.24080628 +vt 0.66333095 0.48161255 +vt 0.68500314 0.16236104 +vt 0.68500314 0.40316732 +vt 0.70176362 0.25013065 +vt 0.70176362 9.3243714e-3 +vt 0.70176362 0.14760339 +vt 0.70460960 0.17670010 +vt 0.70463677 0.11843187 +vt 0.71303301 0.20463292 +vt 0.71316572 9.0285897e-2 +vt 0.72669211 0.23036134 +vt 0.72744227 6.4573667e-2 +vt 0.74505709 0.25292950 +vt 0.74639130 4.2209259e-2 +vt 0.76742878 0.27149969 +vt 0.76926669 2.4003898e-2 +vt 0.77927928 0.14802626 +vt 0.78057778 0.16199663 +vt 0.78073783 0.13406754 +vt 0.78457587 0.17544060 +vt 0.78490592 0.12066329 +vt 0.79111448 0.18784396 +vt 0.79163105 0.10834178 +vt 0.79296340 0.28538179 +vt 0.79518773 1.0613758e-2 +vt 0.79993963 0.19873453 +vt 0.80063998 9.7580169e-2 +vt 0.81071226 0.20769888 +vt 0.81157598 8.8790328e-2 +vt 0.82070251 0.29405771 +vt 0.82302091 0.21439704 +vt 0.82316940 2.5175483e-3 +vt 0.82401266 8.2305431e-2 +vt 0.83639685 0.21857466 +vt 0.83747008 7.8369108e-2 +vt 0.84960704 0.29719973 +vt 0.85033122 0.22007215 +vt 0.85088181 0.14859987 +vt 0.85143240 7.7127582e-2 +vt 0.85215658 0.0000000e+0 +vt 0.86429354 0.21883062 +vt 0.86536678 7.8625073e-2 +vt 0.87775096 0.21489430 +vt 0.87859422 0.29468218 +vt 0.87874271 8.2802689e-2 +vt 0.88106111 3.1420184e-3 +vt 0.89018764 0.20840940 +vt 0.89105136 8.9500853e-2 +vt 0.90112364 0.19961956 +vt 0.90182399 9.8465201e-2 +vt 0.90657589 0.28658597 +vt 0.90880022 1.1817936e-2 +vt 0.91013258 0.18885795 +vt 0.91064915 0.10935577 +vt 0.91685770 0.17653644 +vt 0.91718775 0.12175913 +vt 0.92102579 0.16313219 +vt 0.92118584 0.13520310 +vt 0.92248434 0.14917347 +vt 0.93249693 0.27319583 +vt 0.93433484 2.5700039e-2 +vt 0.95537232 0.25499047 +vt 0.95670653 4.4270228e-2 +vt 0.97432135 0.23262606 +vt 0.97507151 6.6838391e-2 +vt 0.98859790 0.20691383 +vt 0.98873061 9.2566805e-2 +vt 0.99712686 0.17876786 +vt 0.99715402 0.12049963 +vt 1.00000000 0.14959634 +g sphere1 +usemtl IShoot +s 1 +f 1/194/ 34/204/ 33/205/ +f 1/194/ 64/203/ 32/192/ +f 1/194/ 129/173/ 2/193/ +f 2/193/ 34/204/ 1/194/ +f 2/193/ 129/173/ 3/191/ +f 3/191/ 34/204/ 2/193/ +f 3/191/ 36/200/ 35/202/ +f 3/191/ 129/173/ 4/189/ +f 4/189/ 36/200/ 3/191/ +f 4/189/ 129/173/ 5/185/ +f 5/185/ 36/200/ 4/189/ +f 5/185/ 38/196/ 37/198/ +f 5/185/ 129/173/ 6/183/ +f 6/183/ 38/196/ 5/185/ +f 6/183/ 129/173/ 7/180/ +f 7/180/ 38/196/ 6/183/ +f 7/180/ 40/181/ 39/187/ +f 7/180/ 129/173/ 8/177/ +f 8/177/ 40/181/ 7/180/ +f 8/177/ 129/173/ 9/174/ +f 9/174/ 40/181/ 8/177/ +f 9/174/ 42/167/ 41/175/ +f 9/174/ 129/173/ 10/170/ +f 10/170/ 42/167/ 9/174/ +f 10/170/ 129/173/ 11/168/ +f 11/168/ 42/167/ 10/170/ +f 11/168/ 44/151/ 43/160/ +f 11/168/ 129/173/ 12/164/ +f 12/164/ 44/151/ 11/168/ +f 12/164/ 129/173/ 13/162/ +f 13/162/ 44/151/ 12/164/ +f 13/162/ 46/147/ 45/149/ +f 13/162/ 129/173/ 14/158/ +f 14/158/ 46/147/ 13/162/ +f 14/158/ 129/173/ 15/156/ +f 15/156/ 46/147/ 14/158/ +f 15/156/ 48/143/ 47/145/ +f 15/156/ 129/173/ 16/154/ +f 16/154/ 48/143/ 15/156/ +f 16/154/ 129/173/ 17/152/ +f 17/152/ 48/143/ 16/154/ +f 17/152/ 50/142/ 49/141/ +f 17/152/ 129/173/ 18/153/ +f 18/153/ 50/142/ 17/152/ +f 18/153/ 129/173/ 19/155/ +f 19/155/ 50/142/ 18/153/ +f 19/155/ 52/146/ 51/144/ +f 19/155/ 129/173/ 20/157/ +f 20/157/ 52/146/ 19/155/ +f 20/157/ 129/173/ 21/161/ +f 21/161/ 52/146/ 20/157/ +f 21/161/ 54/150/ 53/148/ +f 21/161/ 129/173/ 22/163/ +f 22/163/ 54/150/ 21/161/ +f 22/163/ 129/173/ 23/166/ +f 23/166/ 54/150/ 22/163/ +f 23/166/ 56/165/ 55/159/ +f 23/166/ 129/173/ 24/169/ +f 24/169/ 56/165/ 23/166/ +f 24/169/ 129/173/ 25/172/ +f 25/172/ 56/165/ 24/169/ +f 25/172/ 58/179/ 57/171/ +f 25/172/ 129/173/ 26/176/ +f 26/176/ 58/179/ 25/172/ +f 26/176/ 129/173/ 27/178/ +f 27/178/ 58/179/ 26/176/ +f 27/178/ 60/195/ 59/186/ +f 27/178/ 129/173/ 28/182/ +f 28/182/ 60/195/ 27/178/ +f 28/182/ 129/173/ 29/184/ +f 29/184/ 60/195/ 28/182/ +f 29/184/ 62/199/ 61/197/ +f 29/184/ 129/173/ 30/188/ +f 30/188/ 62/199/ 29/184/ +f 30/188/ 129/173/ 31/190/ +f 31/190/ 62/199/ 30/188/ +f 31/190/ 64/203/ 63/201/ +f 31/190/ 129/173/ 32/192/ +f 32/192/ 64/203/ 31/190/ +f 32/192/ 129/173/ 1/194/ +f 33/205/ 64/203/ 1/194/ +f 33/113/ 65/112/ 64/117/ +f 34/110/ 65/112/ 33/113/ +f 34/110/ 67/101/ 66/108/ +f 35/202/ 34/204/ 3/191/ +f 35/104/ 67/101/ 34/110/ +f 36/98/ 67/101/ 35/104/ +f 36/98/ 69/89/ 68/95/ +f 37/198/ 36/200/ 5/185/ +f 37/92/ 69/89/ 36/98/ +f 38/130/ 69/138/ 37/136/ +f 38/130/ 71/126/ 70/132/ +f 39/187/ 38/196/ 7/180/ +f 39/124/ 71/126/ 38/130/ +f 40/118/ 71/126/ 39/124/ +f 40/118/ 73/111/ 72/119/ +f 41/175/ 40/181/ 9/174/ +f 41/115/ 73/111/ 40/118/ +f 42/109/ 73/111/ 41/115/ +f 42/109/ 75/102/ 74/107/ +f 43/160/ 42/167/ 11/168/ +f 43/103/ 75/102/ 42/109/ +f 44/97/ 75/102/ 43/103/ +f 44/97/ 77/90/ 76/96/ +f 45/149/ 44/151/ 13/162/ +f 45/91/ 77/90/ 44/97/ +f 46/63/ 77/72/ 45/69/ +f 46/63/ 79/56/ 78/64/ +f 47/145/ 46/147/ 15/156/ +f 47/55/ 79/56/ 46/63/ +f 48/46/ 79/56/ 47/55/ +f 48/46/ 81/38/ 80/48/ +f 49/141/ 48/143/ 17/152/ +f 49/39/ 81/38/ 48/46/ +f 50/36/ 81/38/ 49/39/ +f 50/36/ 83/24/ 82/32/ +f 51/144/ 50/142/ 19/155/ +f 51/28/ 83/24/ 50/36/ +f 52/20/ 83/24/ 51/28/ +f 52/20/ 85/8/ 84/16/ +f 53/148/ 52/146/ 21/161/ +f 53/12/ 85/8/ 52/20/ +f 54/62/ 85/73/ 53/68/ +f 54/62/ 87/57/ 86/65/ +f 55/159/ 54/150/ 23/166/ +f 55/54/ 87/57/ 54/62/ +f 56/47/ 87/57/ 55/54/ +f 56/47/ 89/42/ 88/49/ +f 57/171/ 56/165/ 25/172/ +f 57/41/ 89/42/ 56/47/ +f 58/37/ 89/42/ 57/41/ +f 58/37/ 91/25/ 90/33/ +f 59/186/ 58/179/ 27/178/ +f 59/29/ 91/25/ 58/37/ +f 60/21/ 91/25/ 59/29/ +f 60/21/ 93/9/ 92/17/ +f 61/197/ 60/195/ 29/184/ +f 61/13/ 93/9/ 60/21/ +f 62/129/ 93/137/ 61/135/ +f 62/129/ 95/125/ 94/131/ +f 63/201/ 62/199/ 31/190/ +f 63/123/ 95/125/ 62/129/ +f 64/117/ 65/112/ 96/120/ +f 64/117/ 95/125/ 63/123/ +f 65/112/ 98/106/ 97/116/ +f 65/112/ 128/122/ 96/120/ +f 66/108/ 65/112/ 34/110/ +f 66/108/ 98/106/ 65/112/ +f 67/101/ 98/106/ 66/108/ +f 67/101/ 100/93/ 99/100/ +f 68/95/ 67/101/ 36/98/ +f 68/95/ 100/93/ 67/101/ +f 69/89/ 100/93/ 68/95/ +f 69/138/ 102/133/ 101/139/ +f 70/132/ 69/138/ 38/130/ +f 70/132/ 102/133/ 69/138/ +f 71/126/ 102/133/ 70/132/ +f 71/126/ 104/121/ 103/127/ +f 72/119/ 71/126/ 40/118/ +f 72/119/ 104/121/ 71/126/ +f 73/111/ 104/121/ 72/119/ +f 73/111/ 106/105/ 105/114/ +f 74/107/ 73/111/ 42/109/ +f 74/107/ 106/105/ 73/111/ +f 75/102/ 106/105/ 74/107/ +f 75/102/ 108/94/ 107/99/ +f 76/96/ 75/102/ 44/97/ +f 76/96/ 108/94/ 75/102/ +f 77/90/ 108/94/ 76/96/ +f 77/72/ 110/66/ 109/76/ +f 78/64/ 77/72/ 46/63/ +f 78/64/ 110/66/ 77/72/ +f 79/56/ 110/66/ 78/64/ +f 79/56/ 112/50/ 111/58/ +f 80/48/ 79/56/ 48/46/ +f 80/48/ 112/50/ 79/56/ +f 81/38/ 112/50/ 80/48/ +f 81/38/ 114/30/ 113/40/ +f 82/32/ 81/38/ 50/36/ +f 82/32/ 114/30/ 81/38/ +f 83/24/ 114/30/ 82/32/ +f 83/24/ 116/14/ 115/22/ +f 84/16/ 83/24/ 52/20/ +f 84/16/ 116/14/ 83/24/ +f 85/8/ 116/14/ 84/16/ +f 85/73/ 118/67/ 117/77/ +f 86/65/ 85/73/ 54/62/ +f 86/65/ 118/67/ 85/73/ +f 87/57/ 118/67/ 86/65/ +f 87/57/ 120/51/ 119/59/ +f 88/49/ 87/57/ 56/47/ +f 88/49/ 120/51/ 87/57/ +f 89/42/ 120/51/ 88/49/ +f 89/42/ 122/31/ 121/43/ +f 90/33/ 89/42/ 58/37/ +f 90/33/ 122/31/ 89/42/ +f 91/25/ 122/31/ 90/33/ +f 91/25/ 124/15/ 123/23/ +f 92/17/ 91/25/ 60/21/ +f 92/17/ 124/15/ 91/25/ +f 93/9/ 124/15/ 92/17/ +f 93/137/ 126/134/ 125/140/ +f 94/131/ 93/137/ 62/129/ +f 94/131/ 126/134/ 93/137/ +f 95/125/ 126/134/ 94/131/ +f 95/125/ 128/122/ 127/128/ +f 96/120/ 95/125/ 64/117/ +f 96/120/ 128/122/ 95/125/ +f 97/116/ 128/122/ 65/112/ +f 98/4/ 128/5/ 97/1/ +f 99/100/ 98/106/ 67/101/ +f 99/6/ 127/7/ 98/4/ +f 100/10/ 126/11/ 99/6/ +f 101/86/ 100/93/ 69/89/ +f 101/18/ 125/19/ 100/10/ +f 102/27/ 124/26/ 101/18/ +f 103/127/ 102/133/ 71/126/ +f 103/35/ 123/34/ 102/27/ +f 104/45/ 122/44/ 103/35/ +f 105/114/ 104/121/ 73/111/ +f 105/53/ 121/52/ 104/45/ +f 106/61/ 120/60/ 105/53/ +f 107/99/ 106/105/ 75/102/ +f 107/71/ 119/70/ 106/61/ +f 108/75/ 118/74/ 107/71/ +f 109/88/ 108/94/ 77/90/ +f 109/79/ 117/78/ 108/75/ +f 110/81/ 116/80/ 109/79/ +f 111/58/ 110/66/ 79/56/ +f 111/83/ 115/82/ 110/81/ +f 112/85/ 114/84/ 111/83/ +f 113/40/ 112/50/ 81/38/ +f 113/87/ 114/84/ 112/85/ +f 115/82/ 111/83/ 114/84/ +f 115/22/ 114/30/ 83/24/ +f 116/80/ 110/81/ 115/82/ +f 117/78/ 109/79/ 116/80/ +f 117/3/ 116/14/ 85/8/ +f 118/74/ 108/75/ 117/78/ +f 119/70/ 107/71/ 118/74/ +f 119/59/ 118/67/ 87/57/ +f 120/60/ 106/61/ 119/70/ +f 121/52/ 105/53/ 120/60/ +f 121/43/ 120/51/ 89/42/ +f 122/44/ 104/45/ 121/52/ +f 123/34/ 103/35/ 122/44/ +f 123/23/ 122/31/ 91/25/ +f 124/26/ 102/27/ 123/34/ +f 125/19/ 101/18/ 124/26/ +f 125/2/ 124/15/ 93/9/ +f 126/11/ 100/10/ 125/19/ +f 127/7/ 99/6/ 126/11/ +f 127/128/ 126/134/ 95/125/ +f 128/5/ 98/4/ 127/7/ diff --git a/Faceball2030/assets/enemies/ShootMe2.png b/Faceball2030/assets/enemies/ShootMe2.png new file mode 100644 index 0000000..2d8f5a7 Binary files /dev/null and b/Faceball2030/assets/enemies/ShootMe2.png differ diff --git a/Faceball2030/assets/enemies/ShootMe2.wings b/Faceball2030/assets/enemies/ShootMe2.wings new file mode 100644 index 0000000..5f3fafa Binary files /dev/null and b/Faceball2030/assets/enemies/ShootMe2.wings differ diff --git a/Faceball2030/assets/enemies/cone1_auv.png b/Faceball2030/assets/enemies/cone1_auv.png new file mode 100644 index 0000000..8f9321d Binary files /dev/null and b/Faceball2030/assets/enemies/cone1_auv.png differ diff --git a/Faceball2030/assets/map/map2.map b/Faceball2030/assets/map/map2.map index b833b38..f04e47e 100644 --- a/Faceball2030/assets/map/map2.map +++ b/Faceball2030/assets/map/map2.map @@ -1,27 +1,66 @@ -5 -5 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 -8192 +8 +8 +8873 +8204 +8857 +8200 +8200 +25244 +8201 +25260 +8193 +8196 +8193 +8192 +16928 +8196 +16913 +8196 +16913 +16944 +8192 +9280 +8192 +25280 +8192 +8196 +8193 +8192 +8192 +8194 +8192 +8192 +8192 +532 +8193 +8196 +8197 +8351 +8193 +8196 +8193 +8196 +8193 +8196 +8195 +8202 +8194 +406 +8193 +8196 +529 +8192 +8472 +8200 +8744 +8200 +8192 +8196 +707 +8194 +8194 +8194 +8194 +8194 +25138 +710 diff --git a/Faceball2030/main.cpp b/Faceball2030/main.cpp index be9f6c8..3b7b033 100644 --- a/Faceball2030/main.cpp +++ b/Faceball2030/main.cpp @@ -67,7 +67,7 @@ bool Enemy::CanShoot() { void Enemy::ShootBullet(int myIndex) { fireDelay = game->enemyData[GetID()].fireDelay; - game->bullets.push_back({ game->bullet, pos,rot,0.2f,{std::cosf(rot) * game->shotSpd,std::sinf(rot) * game->shotSpd }, YELLOW,false,GetID(),myIndex,blinking}); + game->bullets.push_back({ game->bullet, {pos.x,pos.y+0.15f,pos.z},rot,0.2f,{std::cosf(rot) * game->shotSpd,std::sinf(rot) * game->shotSpd }, YELLOW,false,GetID(),myIndex,blinking}); } void Enemy::ReloadBullet(float fElapsedTime) { @@ -97,6 +97,11 @@ void Enemy::setExploded(bool exploded) { this->exploded = exploded; } +Enemy Enemy::freshCopy(bool randomizeLoc){ + vf2d newPos = game->GetRandomizedSpawnPosition(); + return Enemy{id,(randomizeLoc)?vec3d{newPos.x,0,newPos.y}:pos,rot,radius}; +} + bool Enemy::isBlinking() { return blinking; } @@ -247,9 +252,11 @@ void FaceBall::InitializeEnemyData() { enemyData[EnemyID::NONE] = { "VOID",undefined,BLACK }; enemyData[EXIT] = { "EXIT",undefined,GREEN }; enemyData[START] = { "SPAWN POSITION",undefined,{128,64,0} }; - enemyData[SHOOTME] = { "SHOOTME",enemy_ShootMe,YELLOW,1,1,PI / 8,2,1,0.2f,true }; - enemyData[SHOOTME2] = { "SHOOTME2",enemy_IShoot,YELLOW,1,1,PI / 6,2,1,0.3f,true }; - enemyData[SHOOTME_ARMOR] = { "SHOOTME",enemy_ShootMe,YELLOW,6,1,PI / 6,2,1,0.3f,true,PowerupType::ARMOR,true }; + enemyData[SHOOTME] = { "SHOOTME",enemy_ShootMe,YELLOW,1,1,0.5,2,1,0.2f,true }; + enemyData[SHOOTME2] = { "SHOOTME2",enemy_ShootMe2,YELLOW,1,1,PI / 6,2,1,0.35f,true }; + enemyData[ISHOOT] = { "ISHOOT",enemy_IShoot,YELLOW,1,1,0.5,2,3,0.4f,true }; + enemyData[SHOOTME_ARMOR] = { "SHOOTME",enemy_ShootMe,YELLOW,6,1,0.5,2,1,0.3f,true,PowerupType::ARMOR,true }; + enemyData[ISHOOT_MAP] = { "ISHOOT",enemy_IShoot,YELLOW,7,1,0.5,2,2,0.3f,true,PowerupType::STOP,true }; enemyData[SONAR] = { "Sonar",enemy_Sonar,RED,5,1,PI / 8,2,1 }; enemyData[COIN] = { "Coin",undefined,BLUE }; enemyData[POWERUP_ARMOR] = { "Armor",undefined,{96,0,96} }; @@ -303,6 +310,8 @@ void FaceBall::ConvertBulletColor(Mesh& bullet, Pixel col) { void FaceBall::LoadLevel(int level) { + mode = GAMEMODE::GAME; + screenAlpha=screenAlpha2=0; this->level = level; restingTriangleYDepth = 0.f; exitWallsCleared = false; @@ -316,6 +325,10 @@ void FaceBall::LoadLevel(int level) bullets.clear(); enemies.clear(); powerups.clear(); + wave2Enemies.clear(); + wave3Enemies.clear(); + knownGoodPositions.clear(); + tagsRemaining=10; exitCoords = { 0,0 }; for (int y = 0; y < MAP_SIZE.y; y++) { std::vectorrow; @@ -325,6 +338,7 @@ void FaceBall::LoadLevel(int level) mapFloor.tris.push_back({ {{(float)x + 1,0,(float)y},{(float)x,0,(float)y + 1},{(float)x + 1,0,(float)y + 1}},{{1,0},{0,1},{1,1}},{WHITE,WHITE,WHITE}, floor_tex }); EnemyID id = mapData[y][x].enemyId; if (id>=SHOOTME&& id < POWERUP_ARMOR) { + knownGoodPositions.push_back({x + 0.5f,y + 0.5f}); if (mapData[y][x].wave1) { enemies.push_back({ id,vec3d{x + 0.5f,0,y + 0.5f},((int)mapData[y][x].facingDir - 1) * PI / 2,enemyData[id].radius }); } else @@ -1451,6 +1465,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0?0.2f:0.6f; } @@ -1464,6 +1479,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1487,6 +1503,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1500,6 +1517,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1520,6 +1538,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1533,6 +1552,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1540,6 +1560,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { } float distanceToExit = std::sqrtf(std::powf(player.GetPos().x - exit.pos.x, 2) + std::powf(player.GetPos().z - exit.pos.z, 2)); if (distanceToExit < player.GetRadius() + exit.radius) { + screenAlpha2=screenAlpha=0; mode = LEVELCOMPLETE; } } @@ -1558,6 +1579,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1571,6 +1593,7 @@ void FaceBall::HandleKeys(float fElapsedTime) { Enemy& e = enemies[enemyCollisionIndex]; e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } @@ -1648,6 +1671,7 @@ bool FaceBall::OnUserCreate() enemy_Sonar_tex = new Decal(new Sprite("assets/enemies/Sonar.png")); hud = new Decal(new Sprite("assets/hud.png")); exit_wall_tex = new Decal(new Sprite("assets/exitwall.png")); + enemy_ShootMe2_tex = new Decal(new Sprite("assets/enemies/ShootMe2.png")); enemy_IShoot_tex = new Decal(new Sprite("assets/enemies/IShoot.png")); life4 = new Decal(new Sprite("assets/life4.png")); life3 = new Decal(new Sprite("assets/life3.png")); @@ -1660,8 +1684,9 @@ bool FaceBall::OnUserCreate() powerups_tex = new Decal(new Sprite("assets/powerups.png")); enemy_ShootMe = { "assets/enemies/ShootMe.obj", enemy_ShootMe_tex }; - enemy_IShoot = { "assets/enemies/IShoot.obj", enemy_IShoot_tex }; + enemy_ShootMe2 = { "assets/enemies/ShootMe2.obj", enemy_ShootMe2_tex }; enemy_Sonar = { "assets/enemies/Sonar.obj", enemy_Sonar_tex }; + enemy_IShoot = { "assets/enemies/IShoot.obj", enemy_IShoot_tex}; bullet = { "assets/enemies/bullet.obj",bullet_tex }; powerup = { "assets/Powerup.obj",powerup_tex}; powerup2 = { "assets/Powerup2.obj",powerup2_tex }; @@ -1945,6 +1970,7 @@ void FaceBall::RenderHud(float fElapsedTime) { } DrawStringPropDecal(vf2d{ hudOffset + (float)(ScreenWidth() / 2 - GetTextSizeProp(std::to_string(score)).x * 4 / 2) + 32,(float)(36 - GetTextSizeProp(std::to_string(score)).y * 4) + 18 } + hudAdjustment, std::to_string(score), { 192,96,96 }, { 4,4 }); DrawStringDecal(vf2d{ hudOffset + float(ScreenWidth() / 2 - GetTextSize(hudDisplayText).x / 2 * 4) + 32,float(ScreenHeight() - 128 - GetTextSize(hudDisplayText).y * 4) + 18 }, hudDisplayText, { 192,192,255 }, { 4,4 }); + DrawStringDecal({float(ScreenWidth()-128),24},std::to_string(wave2Enemies.size())); SetDecalMode(DecalMode::ADDITIVE); DrawDecal({ float(ScreenWidth() / 2 - crosshair->sprite->width / 2),float(ScreenHeight() / 2 - crosshair->sprite->height / 2) }, crosshair, { 1,1 }, {255,255,255,128}); if (stopDuration > 0) { @@ -1963,6 +1989,10 @@ void FaceBall::RenderHud(float fElapsedTime) { GradientFillRectDecal({ 0,float(ScreenHeight()/2)}, vf2d{(float)ScreenWidth() / 2,(float)ScreenHeight() / 2}, {(uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime>0.2f?120:hudShakeTime>0?64:0)}, {(uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime>0.2f?120:hudShakeTime>0?64:0)}, {(uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime>0.2f?120:hudShakeTime>0?64:0)}, { (uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime > 0.2f ? 64 : 0) }); GradientFillRectDecal({ float(ScreenWidth()/2),float(ScreenHeight() / 2)}, vf2d{(float)ScreenWidth() / 2,(float)ScreenHeight() / 2}, { (uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime > 0.2f ? 64 : 0) }, {(uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime>0.2f?120:hudShakeTime>0?64:0)}, {(uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime>0.2f?120:hudShakeTime>0?64:0)}, {(uint8_t)screenCol.r,(uint8_t)screenCol.g,(uint8_t)screenCol.b,(uint8_t)(hudShakeTime>0.2f?120:hudShakeTime>0?64:0)}); FillRectDecal({ 0,0 }, vf2d{ (float)ScreenWidth(),(float)ScreenHeight() }, { (uint8_t)0,(uint8_t)0,(uint8_t)0,(uint8_t)screenAlpha }); + if (screenAlpha>=254.f){ + GradientFillRectDecal({0,0},{float(ScreenWidth()),float(ScreenHeight())},topCol,botCol,botCol,topCol); + FillRectDecal({ 0,0 }, vf2d{ (float)ScreenWidth(),(float)ScreenHeight() }, { (uint8_t)0,(uint8_t)0,(uint8_t)0,(uint8_t)screenAlpha2 }); + } } void FaceBall::SubtractTag() { @@ -1981,13 +2011,13 @@ void FaceBall::SubtractTag() { if (exitCoords.x != MAP_SIZE.x-1) { map[exitCoords.y][exitCoords.x].wallE = NULL; } - if (exitCoords.x-1 > 0) { + if (exitCoords.x > 0) { map[exitCoords.y][exitCoords.x - 1].wallE = NULL; } if (exitCoords.x+1 < MAP_SIZE.x) { map[exitCoords.y][exitCoords.x+1].wallW = NULL; } - if (exitCoords.y-1 > 0) { + if (exitCoords.y > 0) { map[exitCoords.y - 1][exitCoords.x].wallS = NULL; } if (exitCoords.y+1 < MAP_SIZE.y) { @@ -2041,7 +2071,7 @@ void FaceBall::RunEnemyAI(Enemy& e,float fElapsedTime,int myIndex) { switch (e.GetID()) { case SHOOTME: case SHOOTME_ARMOR: { - e.rot += 0.5 * fElapsedTime; + e.rot += dat.rotSpd * fElapsedTime; }break; case SHOOTME2: { switch (e.GetPhase()) { @@ -2052,8 +2082,9 @@ void FaceBall::RunEnemyAI(Enemy& e,float fElapsedTime,int myIndex) { if (CheckPlayerCollision({ movementVec.x,0,movementVec.y }, { e.pos.x,e.pos.z }, e.radius)) { e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); - hudShakeTime = 0.6f; + hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } e.pos.x += movementVec.x; e.pos.z += movementVec.y; @@ -2075,6 +2106,12 @@ void FaceBall::RunEnemyAI(Enemy& e,float fElapsedTime,int myIndex) { }break; } }break; + case ISHOOT: { + e.rot += dat.rotSpd * fElapsedTime; + if (e.CanShoot()) { + e.ShootBullet(myIndex); + } + }break; case ISHOOT2: { switch (e.GetPhase()) { case Phase::DEFAULT: { @@ -2084,8 +2121,9 @@ void FaceBall::RunEnemyAI(Enemy& e,float fElapsedTime,int myIndex) { if (CheckPlayerCollision({ movementVec.x,0,movementVec.y }, { e.pos.x,e.pos.z }, e.radius)) { e.Hurt(999); e.setExploded(true); + wave2Enemies.push_back(e.freshCopy(true)); HurtPlayer(e.GetID(), 1, e.isBlinking()); - hudShakeTime = 0.6f; + hudShakeTime = shieldDuration >= 0 ? 0.2f : 0.6f; } e.pos.x += movementVec.x; e.pos.z += movementVec.y; @@ -2136,8 +2174,8 @@ bool FaceBall::OnUserUpdate(float fElapsedTime) if (wave2Enemies.size()>0){ for (int i=0;i0){ for (int i=0;i=254.f){ + screenAlpha2 = 255.f; + int colInd=rand()%colorCycle.size(); + topTargetColInd=(colInd+1)%colorCycle.size(); + botTargetColInd=(topTargetColInd+1)%colorCycle.size(); + topCol=topCurrentCol=colorCycle[colInd]; + botCol=botCurrentCol=colorCycle[topTargetColInd]; + topTargetCol=colorCycle[topTargetColInd]; + botTargetCol=colorCycle[botTargetColInd]; + } } else { + if (GetMouse(0).bPressed){ + LoadLevel(++level); + } + if (screenAlpha2>0){ + screenAlpha2 = std::max(0.f,screenAlpha2-200 * fElapsedTime); + } DrawStringDecal({ 16,16 }, "Level " + std::to_string(level) + " complete!", WHITE, { 4,8 }); } + if (colTransferAmt<1){ + colTransferAmt+=fElapsedTime*0.5; + topCol=PixelLerp(topCurrentCol,topTargetCol,colTransferAmt); + botCol=PixelLerp(botCurrentCol,botTargetCol,colTransferAmt); + } else { + topCol=topCurrentCol=colorCycle[topTargetColInd]; + botCol=botCurrentCol=colorCycle[botTargetColInd]; + topTargetColInd=(topTargetColInd+1)%colorCycle.size(); + botTargetColInd=(topTargetColInd+1)%colorCycle.size(); + topTargetCol=colorCycle[topTargetColInd]; + botTargetCol=colorCycle[botTargetColInd]; + colTransferAmt=0; + } }break; } if (GetKey(olc::F5).bPressed) { @@ -2305,6 +2372,11 @@ void FaceBall::AddScore(int score) { } } +vf2d FaceBall::GetRandomizedSpawnPosition() +{ + return knownGoodPositions[rand()%knownGoodPositions.size()]; +} + void FaceBall::ResetScore() { score = 0; lastAwardedScore = 0; @@ -2323,7 +2395,7 @@ int FaceBall::EnemiesAlive(){ int main() { FaceBall demo; - if (demo.Construct(1280, 720, 1, 1)) + if (demo.Construct(1280, 720, 2, 2)) demo.Start(); return 0; } diff --git a/Faceball2030/main.h b/Faceball2030/main.h index e3481fd..6df59fb 100644 --- a/Faceball2030/main.h +++ b/Faceball2030/main.h @@ -156,18 +156,6 @@ struct Bullet : Object{ bool Update(float fElapsedTime); }; -enum class PowerupType { - NONE, - ARMOR, - SPEED, - SHOTS, - STOP, - SHIELD, - CAMO, - MAP, - COIN -}; - struct Powerup : Object { PowerupType type; Powerup(Mesh mesh, vec3d pos, float rot, PowerupType type); @@ -250,6 +238,7 @@ struct Enemy : public Object { bool Update(float fElapsedTime); void OnDeathEvent(); vf2d GetPlayerPosition(); + Enemy freshCopy(bool randomizeLoc=false); }; class FaceBall : public PixelGameEngine @@ -271,13 +260,15 @@ class FaceBall : public PixelGameEngine std::vectorpowerups; private: Mesh mapWalls,mapFloor,enemy_ShootMe,undefined, - enemy_Sonar, mapExit,enemy_IShoot,powerup,powerup2; + enemy_Sonar, mapExit,enemy_ShootMe2,powerup,powerup2, + enemy_IShoot; Decal* dot, * enemy_ShootMe_tex,*bullet_tex,*wall_tex,*floor_tex, - *enemy_Sonar_tex,*hud,*exit_wall_tex,*enemy_IShoot_tex, + *enemy_Sonar_tex,*hud,*exit_wall_tex,*enemy_ShootMe2_tex,*enemy_IShoot_tex, *life4,*life3,*life2,*life1,*crosshair,*hudmeter,*powerup_tex,*powerup2_tex, *powerups_tex; vi2d exitCoords = { 0,0 }; + std::vectorknownGoodPositions; std::vector>map; std::vectorobjects; GAMEMODE mode=GAMEMODE::GAME; @@ -292,6 +283,27 @@ class FaceBall : public PixelGameEngine std::string hudDisplayText = ""; float stopDuration = 0,shieldDuration=0,camoDuration=0; bool hasMapUpgrade = false; + std::arraycolorCycle={ + RED, + BLACK, + YELLOW, + WHITE, + GREEN, + WHITE, + CYAN, + BLACK, + MAGENTA, + BLACK, + GREY, + WHITE, + BLUE, + BLACK + }; + int topTargetColInd,botTargetColInd; + Pixel topTargetCol,botTargetCol; + Pixel topCurrentCol,botCurrentCol; + Pixel topCol,botCol; + float colTransferAmt=0; mat4x4 matProj; @@ -351,6 +363,7 @@ class FaceBall : public PixelGameEngine float hudShakeAmt = 0; Pixel screenCol = WHITE; float screenAlpha = 0; + float screenAlpha2 = 255.f; float respawnTimer = 0; vec3d spawnLoc = { 0,0.3,0 }; FacingDirection spawnFacingDir = FacingDirection::NORTH; @@ -417,4 +430,5 @@ class FaceBall : public PixelGameEngine bool PlayerHasCamo(); vf2d GetPlayerPos(); void AddScore(int score); + vf2d GetRandomizedSpawnPosition(); }; \ No newline at end of file