diff --git a/assets b/assets index 2c75d24d..b6027bf4 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 2c75d24ddfeb29c266d98a6d637b6c5768c5cafe +Subproject commit b6027bf49fead547fb212c6a70f03015af3b92df diff --git a/include/Game/Systems/PlayerMovementSystem.h b/include/Game/Systems/PlayerMovementSystem.h index feb1951e..60d25a42 100644 --- a/include/Game/Systems/PlayerMovementSystem.h +++ b/include/Game/Systems/PlayerMovementSystem.h @@ -32,6 +32,8 @@ private: glm::vec3 m_LastPosition = glm::vec3(); // Used to track afterimages for sprint effect. float m_SprintEffectTimer; + // Used to track afterimages for dash effect. + float m_DashEffectTimer; // The logic for making the sound play when player is moving void playerStep(double dt, EntityWrapper player); // Spawn a hexagon at origin of an Entity diff --git a/resources/Schema/Components/BoostAssault.xml b/resources/Schema/Components/BoostAssault.xml index c76fe21e..29378aec 100644 --- a/resources/Schema/Components/BoostAssault.xml +++ b/resources/Schema/Components/BoostAssault.xml @@ -1,4 +1,4 @@ - 2 + 1.35 diff --git a/resources/Schema/Components/DefenderWeapon.xml b/resources/Schema/Components/DefenderWeapon.xml index 9c3861cd..f2e7b3d9 100755 --- a/resources/Schema/Components/DefenderWeapon.xml +++ b/resources/Schema/Components/DefenderWeapon.xml @@ -10,8 +10,8 @@ 0.174533 9 120 - 0.03 - 0.2 + 0.15 + 0.3 0.5 false 0 diff --git a/resources/Schema/Components/Fade.xml b/resources/Schema/Components/Fade.xml index 94c942ca..2383b2a4 100644 --- a/resources/Schema/Components/Fade.xml +++ b/resources/Schema/Components/Fade.xml @@ -3,5 +3,6 @@ 1 true + true false \ No newline at end of file diff --git a/resources/Schema/Components/Fade.xsd b/resources/Schema/Components/Fade.xsd index 9c638258..c019678c 100644 --- a/resources/Schema/Components/Fade.xsd +++ b/resources/Schema/Components/Fade.xsd @@ -11,6 +11,9 @@ If the entity should fade out or in. + + If the effect should loop when it is done. + If the entity should reverse the fade after finishing, this will double the speed. diff --git a/resources/Schema/Components/SidearmWeapon.xml b/resources/Schema/Components/SidearmWeapon.xml index a41bc201..6f505d0c 100644 --- a/resources/Schema/Components/SidearmWeapon.xml +++ b/resources/Schema/Components/SidearmWeapon.xml @@ -6,7 +6,9 @@ 20 500 false - 0.01 + 0.05 + 0.174533 + 0.2 1.0 0.5 false @@ -14,4 +16,5 @@ false false 0 + 0 \ No newline at end of file diff --git a/resources/Schema/Components/SidearmWeapon.xsd b/resources/Schema/Components/SidearmWeapon.xsd index 2c1df4a1..fcb40c8f 100644 --- a/resources/Schema/Components/SidearmWeapon.xsd +++ b/resources/Schema/Components/SidearmWeapon.xsd @@ -36,6 +36,12 @@ View punch in radians for each shell fired + + Maximum vertical aim travel angle in radians + + + The speed in radians per second the view returns to its original position after being punched + Time it takes to load ONE SHELL into the weapon in seconds @@ -47,6 +53,7 @@ + diff --git a/resources/Schema/Entities/DashEffect.xml b/resources/Schema/Entities/DashEffect.xml deleted file mode 100644 index 6f28784d..00000000 --- a/resources/Schema/Entities/DashEffect.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - 0.5 - - - - - - - diff --git a/resources/Schema/Entities/StartMenu.xml b/resources/Schema/Entities/StartMenu.xml index 86ee626e..ae7744aa 100644 --- a/resources/Schema/Entities/StartMenu.xml +++ b/resources/Schema/Entities/StartMenu.xml @@ -22,7 +22,7 @@ - 0.53338721940212963 + 1.1666849700106923 @@ -54,8 +54,7 @@ - Models/Props/Walls/SciFiWallBig.mesh - true + Models/Props/Walls/SciFiWallMedium.mesh @@ -65,7 +64,8 @@ - Models/Props/Walls/SciFiWallMedium.mesh + Models/Props/Walls/SciFiWallBig.mesh + true @@ -697,6 +697,19 @@ + + + + + Models/Highgrounds/Hg17.mesh + + + + + + + + @@ -757,19 +770,6 @@ - - - - - Models/Highgrounds/Hg17.mesh - - - - - - - - @@ -1436,6 +1436,2474 @@ + + + + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + Models/Props/Pillars/SciFiBridgePillar1.mesh + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + Models/Props/Pillars/SciFiBridgePillar1.mesh + + + + + + + + + + + + + + + + + Models/Props/Pillars/SciFiBridgePillar1.mesh + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridge1Blue.mesh + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + Models/Props/Bridges/SciFiBridgeDefense.mesh + + + + + + + + + + + + + + + + + + + + + + + + + + + Models/Props/Walls/SpecialWall1.mesh + + + + + + + + + + + + + + Models/Props/Walls/SpecialWall1.mesh + + + + + + + + + + + + + + Models/Props/Walls/SpecialWall1.mesh + + + + + + + + + + + + + + Models/Props/Walls/SpecialWall1.mesh + + + + + + + + + + + + + + + Models/Core/UnitPlane.mesh + + true + + + + + + + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + 5 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalRed.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 4 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + 2 + 1 + + + + + + + + + + + + 2 + + + + + + + + + + + + 3 + + + + + + + + + + + + + + 4 + Models/Props/Stones/ShinyStoneCrystalBlue.mesh + + + + + + + + + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/mediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/AmmoPickUp.mesh + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/AmmoPickUp.mesh + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/AmmoPickUp.mesh + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + + + + + + + + + + + + + + + Models/Props/PickUps/PickUpHolder.mesh + + + + + + + + + + + + + + + + + + + + 8 + + + + Models/Props/PickUps/HealthPickUp.mesh + + + + + + + + + + + + + + + + + + + + + + + + + + Models/Props/Pillars/SciFiPillar2Blue.mesh + + + + + + + + + + + + + + Models/Props/Pillars/StonePillar.mesh + + + + + + + + + + + + Models/Props/Pillars/StonePillar.mesh + + + + + + + + + + + + + + Models/Props/Pillars/SciFiPillar2Blue.mesh + + + + + + + + + + + + + Models/Props/Pillars/StonePillar.mesh + + + + + + + + + + + + + + 6 + Models/Props/Pillars/SciFiPillar1Blue.mesh + + + + + + + + + + + + + + + + + + + + + Models/Props/Flora/SpecialRoot.mesh + + + + + + + + + + + + + + Models/Props/Flora/SpecialRoot.mesh + + + + + + + + + + + + + + Models/Props/Flora/SpecialRoot.mesh + + + + + + + + + + + + + Models/Props/Flora/SpecialRoot.mesh + + + + + + + + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + + + + + + + + Models/Props/Pillars/StonePillar.mesh + + + + + + + + + + + @@ -2698,6 +5166,21 @@ + + + + Models/Core/UnitPlane.mesh + + true + + + + + + + + + @@ -2818,7 +5301,6 @@ - 8 @@ -2828,9 +5310,10 @@ - + + @@ -2860,7 +5343,6 @@ - 8 @@ -2870,9 +5352,10 @@ - + + @@ -2902,7 +5385,6 @@ - 8 @@ -2912,9 +5394,10 @@ - + + @@ -2944,7 +5427,6 @@ - 8 @@ -2954,9 +5436,10 @@ - + + @@ -2986,7 +5469,6 @@ - 8 @@ -2996,9 +5478,10 @@ - + + @@ -3028,7 +5511,6 @@ - 8 @@ -3038,9 +5520,10 @@ - + + @@ -3070,7 +5553,6 @@ - 8 @@ -3080,9 +5562,10 @@ - + + @@ -3112,7 +5595,6 @@ - 8 @@ -3122,9 +5604,10 @@ - + + @@ -3154,7 +5637,6 @@ - 8 @@ -3164,9 +5646,10 @@ - + + @@ -3227,6 +5710,450 @@ + + + + + Models/Props/Stones/mediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/mediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/mediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + Models/Props/Stones/mediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + Models/Props/Stones/SmallStone2.mesh + + + + + + + + @@ -3294,20 +6221,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -3322,20 +6235,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - @@ -3350,19 +6249,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -3377,19 +6263,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - @@ -3404,20 +6277,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - @@ -3432,19 +6291,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -3458,20 +6304,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -3486,19 +6318,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - @@ -3512,19 +6331,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - @@ -3538,19 +6344,6 @@ - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - @@ -3565,20 +6358,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -3592,20 +6371,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -3620,19 +6385,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -3647,19 +6399,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - @@ -3673,20 +6412,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - @@ -3700,18 +6425,6 @@ - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - @@ -3725,20 +6438,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - @@ -3753,20 +6452,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -3780,20 +6465,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - @@ -3807,19 +6478,6 @@ - - - - - Models/Props/Stones/mediumStone2.mesh - - - - - - - - @@ -3833,19 +6491,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -3860,19 +6505,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -3940,20 +6572,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - @@ -3968,20 +6586,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -3996,19 +6600,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -4022,20 +6613,6 @@ - - - - - Models/Props/Stones/mediumStone2.mesh - - - - - - - - - @@ -4050,19 +6627,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - @@ -4076,20 +6640,6 @@ - - - - - Models/Props/Stones/mediumStone2.mesh - - - - - - - - - @@ -4103,19 +6653,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - @@ -4130,20 +6667,6 @@ - - - - - Models/Props/Stones/mediumStone2.mesh - - - - - - - - - @@ -4157,19 +6680,6 @@ - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - @@ -4184,20 +6694,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - @@ -4212,19 +6708,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - @@ -4240,26 +6723,37 @@ - - - - Models/Core/UnitPlane.mesh - - true - - - - - - - - - + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + + + + + + Models/Props/SciFiHolder1.mesh + + + + + + + + @@ -4286,19 +6780,6 @@ - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - @@ -4312,19 +6793,6 @@ - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - @@ -4332,6 +6800,20 @@ + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + @@ -4345,6 +6827,165 @@ + + + + + Models/Props/Walls/BigWallBlue.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/BigWallRed.mesh + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/BigWallRed.mesh + + + + + + + + + + + + + Models/Props/Walls/BigWallRed.mesh + + + + + + + + + + + Models/Props/Walls/BigWallRed.mesh + + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + Models/Props/Walls/MediumWall3.mesh + + + + + + + + @@ -4358,19 +6999,6 @@ - - - - - Models/Props/Walls/BigWallRed.mesh - - - - - - - - @@ -4385,19 +7013,6 @@ - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - @@ -4411,20 +7026,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -4438,19 +7039,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - @@ -4519,20 +7107,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -4573,20 +7147,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -4600,20 +7160,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -4628,19 +7174,6 @@ - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - @@ -4655,45 +7188,6 @@ - - - - - Models/Props/Walls/BigWallRed.mesh - - - - - - - - - - - Models/Props/Walls/BigWallRed.mesh - - - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - @@ -4708,19 +7202,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - @@ -4735,19 +7216,6 @@ - - - - - Models/Props/Walls/BigWallRed.mesh - - - - - - - - @@ -4776,8 +7244,8 @@ Models/Props/Walls/SpecialWall1.mesh - - + + @@ -4790,8 +7258,8 @@ Models/Props/Walls/SpecialWall1.mesh - - + + @@ -4820,6 +7288,43 @@ + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalRed.mesh + + + + + + + + + + + + + + 6 + Models/Props/Stones/ShinyStoneCrystalRed.mesh + + + + + + + + + + + @@ -4832,8 +7337,8 @@ Models/Props/Stones/AssaultHolder.mesh - - + + @@ -4845,9 +7350,8 @@ Models/Props/Stones/AssaultHolder.mesh - - - + + @@ -4859,48 +7363,8 @@ Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - + + @@ -4926,8 +7390,35 @@ Models/Props/Stones/AssaultHolder.mesh - - + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + @@ -4952,9 +7443,8 @@ Models/Props/Stones/AssaultHolder.mesh - - - + + @@ -4966,8 +7456,62 @@ Models/Props/Stones/AssaultHolder.mesh - - + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + + + + + + + + + Models/Props/Stones/AssaultHolder.mesh + + + + + @@ -4999,19 +7543,6 @@ - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - @@ -5026,19 +7557,6 @@ - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - @@ -5053,19 +7571,6 @@ - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - @@ -5073,6 +7578,75 @@ + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/BigWallRed.mesh + + + + + + + + + + + + + Models/Props/Walls/SmallWall3.mesh + + + + + + + + + + + + + + Models/Props/Walls/smallWall3.mesh + + + + + + + + + @@ -5099,20 +7673,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -5126,20 +7686,6 @@ - - - - - Models/Props/Walls/smallWall3.mesh - - - - - - - - - @@ -5154,19 +7700,6 @@ - - - - - Models/Props/Walls/BigWallRed.mesh - - - - - - - - @@ -5180,20 +7713,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -5208,20 +7727,6 @@ - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - @@ -5251,7 +7756,6 @@ - 8 @@ -5261,9 +7765,10 @@ - + + @@ -5293,7 +7798,6 @@ - 8 @@ -5303,9 +7807,10 @@ - + + @@ -5315,48 +7820,24 @@ - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalRed.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalRed.mesh - - - - - - - - - - - + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + @@ -5375,12 +7856,12 @@ - Models/Props/Stones/MediumStone2.mesh + Models/Props/Stones/SmallStone2.mesh - - - + + + @@ -5392,8 +7873,88 @@ Models/Props/Stones/SmallStone1.mesh - - + + + + + + + + + + + Models/Props/Stones/BigStone.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + + + + + + + + + Models/Props/Stones/SmallStone1.mesh + + + + + + + + + + + + + + Models/Props/Stones/MediumStone2.mesh + + + + + @@ -5437,19 +7998,6 @@ - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - @@ -5516,19 +8064,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - @@ -5543,19 +8078,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - @@ -5570,19 +8092,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - @@ -5596,20 +8105,6 @@ - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - @@ -5624,19 +8119,6 @@ - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - @@ -5651,20 +8133,6 @@ - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - @@ -5683,2474 +8151,6 @@ - - - - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 5 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalRed.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 4 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - 2 - - - - - - - - - - - - 3 - - - - - - - - - - - - 2 - 1 - - - - - - - - - - - - - - 4 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - - 6 - Models/Props/Stones/ShinyStoneCrystalBlue.mesh - - - - - - - - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/mediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - - Models/Props/Stones/MediumStone2.mesh - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - - Models/Props/Stones/BigStone.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone1.mesh - - - - - - - - - - - - - - Models/Props/Stones/SmallStone2.mesh - - - - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/AmmoPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/AmmoPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/AmmoPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - Models/Props/PickUps/PickUpHolder.mesh - - - - - - - - - - - - - - - - - - - - - 8 - - - - Models/Props/PickUps/HealthPickUp.mesh - - - - - - - - - - - - - - - - - - - - - - - - - Models/Props/Walls/SpecialWall1.mesh - - - - - - - - - - - - - - Models/Props/Walls/SpecialWall1.mesh - - - - - - - - - - - - - - Models/Props/Walls/SpecialWall1.mesh - - - - - - - - - - - - - - Models/Props/Walls/SpecialWall1.mesh - - - - - - - - - - - - - - - - - - - - - Models/Props/Pillars/StonePillar.mesh - - - - - - - - - - - - Models/Props/Pillars/StonePillar.mesh - - - - - - - - - - - - - - Models/Props/Pillars/SciFiPillar2Blue.mesh - - - - - - - - - - - - - - Models/Props/Pillars/SciFiPillar2Blue.mesh - - - - - - - - - - - - - Models/Props/Pillars/StonePillar.mesh - - - - - - - - - - - - - - 6 - Models/Props/Pillars/SciFiPillar1Blue.mesh - - - - - - - - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - Models/Props/Pillars/SciFiBridgePillar1.mesh - - - - - - - - - - - - - - - Models/Props/Pillars/SciFiBridgePillar1.mesh - - - - - - - - - - - - - - - Models/Props/Pillars/SciFiBridgePillar1.mesh - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridge1Blue.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - Models/Props/Bridges/SciFiBridgeDefense.mesh - - - - - - - - - - - - - - - - - - - - - - - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - - - - - - Models/Props/SciFiHolder1.mesh - - - - - - - - - - - - - - - - - - - - Models/Props/Flora/SpecialRoot.mesh - - - - - - - - - - - - - - Models/Props/Flora/SpecialRoot.mesh - - - - - - - - - - - - - Models/Props/Flora/SpecialRoot.mesh - - - - - - - - - - - - - - Models/Props/Flora/SpecialRoot.mesh - - - - - - - - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - - - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - - - - Models/Props/Walls/BigWallBlue.mesh - - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - Models/Props/Walls/SmallWall3.mesh - - - - - - - - - - - - - - Models/Props/Walls/MediumWall3.mesh - - - - - - - - - - - - - - Models/Core/UnitPlane.mesh - - true - - - - - - - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - Models/Props/Stones/AssaultHolder.mesh - - - - - - - - - - - - - - - - - - - - Models/Props/Pillars/StonePillar.mesh - - - - - - - - - - - @@ -8161,6 +8161,49 @@ + + + + + 6 + Models/Props/Pillars/SciFiPillar2Blue.mesh + + + + + + + + + + + + + 6 + Models/Props/Pillars/SciFiPillar2Blue.mesh + + + + + + + + + + + + + 6 + Models/Props/Pillars/SciFiPillar2Blue.mesh + + + + + + + + + @@ -8205,20 +8248,6 @@ - - - - - 6 - Models/Props/Pillars/SciFiPillar2Blue.mesh - - - - - - - - @@ -8262,20 +8291,6 @@ - - - - - 6 - Models/Props/Pillars/SciFiPillar2Blue.mesh - - - - - - - - @@ -8319,21 +8334,6 @@ - - - - - 6 - Models/Props/Pillars/SciFiPillar2Blue.mesh - - - - - - - - - @@ -8373,6 +8373,18 @@ + + + + + 10 + + + + + + + @@ -8406,18 +8418,6 @@ - - - - - 10 - - - - - - - @@ -8459,7 +8459,11 @@ - + + Schema/Entities/PlayerAssaultBlue.xml + Schema/Entities/PlayerDefenderBlue.xml + + Schema/Entities/PlayerAssaultRed.xml @@ -8468,6 +8472,19 @@ + + + + + Models/Characters/Assault/AssaultTPose.mesh + false + + + + + + + @@ -8507,211 +8524,6 @@ - - - - - Models/Characters/Assault/AssaultTPose.mesh - false - - - - - - - - - - - - - - - - - - - Models/Props/CapturePoint/CapturePointNeutral.mesh - - - - - - - - - - 3 - - - - - Models/Core/UnitCylinder.mesh - - true - - - - - - - - - - - - - - - Models/Props/CapturePoint/CapturePointNeutral.mesh - - - - - - - - - - 15 - 1 - - - - - - - - - Models/Core/UnitCylinder.mesh - - true - - - - - - - - - - - - - - - Models/Props/CapturePoint/CapturePointBlue.mesh - - - - - - - - - - -15 - - - - 4 - - - - - - - - - Models/Core/UnitCylinder.mesh - - true - - - - - - - - - - - - - - - Models/Props/CapturePoint/CapturePointNeutral.mesh - - - - - - - - - - 15 - 2 - - - - - - - - - Models/Core/UnitCylinder.mesh - - true - - - - - - - - - - - - - - - Models/Props/CapturePoint/CapturePointRed.mesh - - - - - - - - - - 15 - - - - - - - - - - - - Models/Core/UnitCylinder.mesh - - true - - - - - - - - - - @@ -8721,7 +8533,11 @@ - + + Schema/Entities/PlayerAssaultBlue.xml + Schema/Entities/PlayerDefenderBlue.xml + + Schema/Entities/PlayerAssaultBlue.xml @@ -8730,6 +8546,18 @@ + + + + + Models/Core/UnitCube.mesh + + + + + + + @@ -8764,17 +8592,197 @@ + + + + + + + - + - Models/Core/UnitCube.mesh + Models/Props/CapturePoint/CapturePointNeutral.mesh - + - + + + + + 15 + 1 + + + + + + + + Models/Core/UnitCylinder.mesh + + true + + + + + + + + + + + + + + + + Models/Props/CapturePoint/CapturePointNeutral.mesh + + + + + + + + + + 15 + 2 + + + + + + + + Models/Core/UnitCylinder.mesh + + true + + + + + + + + + + + + + + + + Models/Props/CapturePoint/CapturePointNeutral.mesh + + + + + + + + + + 3 + + + + Models/Core/UnitCylinder.mesh + + true + + + + + + + + + + + + + + + + Models/Props/CapturePoint/CapturePointBlue.mesh + + + + + + + + + + -15 + + + + 4 + + + + + + + + Models/Core/UnitCylinder.mesh + + true + + + + + + + + + + + + + + + + Models/Props/CapturePoint/CapturePointRed.mesh + + + + + + + + + + 15 + + + + + + + + + + + Models/Core/UnitCylinder.mesh + + true + + + + + + + + + + @@ -8796,7 +8804,7 @@ - + @@ -8808,7 +8816,7 @@ - + @@ -8825,6 +8833,21 @@ + + + + Models/Core/UnitQuad.mesh + + Textures/Icons/AxyzWhite-01.png + true + + + + + + + + diff --git a/resources/Schema/Entities/StartMenu_simple.xml b/resources/Schema/Entities/StartMenu_simple.xml index 944c51b5..d6a31372 100644 --- a/resources/Schema/Entities/StartMenu_simple.xml +++ b/resources/Schema/Entities/StartMenu_simple.xml @@ -34,7 +34,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -92,42 +92,6 @@ - - - - - - - - - Models/Core/UnitQuad.mesh - - Textures/HUD/ButtonCorner_16.png - - - - - - - - - - - - Models/Core/UnitQuad.mesh - - Textures/HUD/ButtonCorner_16.png - - - - - - - - - - - @@ -149,6 +113,44 @@ + + + + + + + + + Models/Core/UnitQuad.mesh + + Textures/HUD/ButtonCorner_16.png + false + + + + + + + + + + + + + Models/Core/UnitQuad.mesh + + Textures/HUD/ButtonCorner_16.png + false + + + + + + + + + + @@ -218,6 +220,7 @@ Models/Core/UnitQuad.mesh Textures/HUD/ButtonCorner_16.png + false @@ -233,6 +236,7 @@ Models/Core/UnitQuad.mesh Textures/HUD/ButtonCorner_16.png + false @@ -263,6 +267,7 @@ Models/Core/UnitQuad.mesh Textures/HUD/ButtonCorner_16.png + false @@ -277,6 +282,7 @@ Models/Core/UnitQuad.mesh Textures/HUD/ButtonCorner_16.png + false @@ -299,6 +305,10 @@ true + + Options + 1 + @@ -308,7 +318,7 @@ - Option + Options Fonts/DroidSans.ttf,64 @@ -374,6 +384,7 @@ Models/Core/UnitQuad.mesh Textures/HUD/ButtonCorner_16.png + false @@ -389,6 +400,7 @@ Models/Core/UnitQuad.mesh Textures/HUD/ButtonCorner_16.png + false @@ -419,12 +431,36 @@ + + + + Schema/Entities/OptionMenu.xml + + + + + + + + + Models/Core/UnitQuad.mesh + + Textures/Test/SmallDiff.png + true + + + + + + + + diff --git a/src/Game/Systems/FadeSystem.cpp b/src/Game/Systems/FadeSystem.cpp index 88460d53..f0e83eb5 100644 --- a/src/Game/Systems/FadeSystem.cpp +++ b/src/Game/Systems/FadeSystem.cpp @@ -24,14 +24,14 @@ void FadeSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cFade, currentTime += dTime; if(currentTime > fadeTime) { - currentTime = 0.0; + currentTime = 0.0 + fadeTime * (bool)cFade["Loop"]; if ((bool)cFade["Reverse"]) { (Field)cFade["Out"] = !(bool)cFade["Out"]; currentTime = fadeTime; } } if(currentTime < 0.0) { - currentTime = fadeTime; + currentTime = fadeTime * (bool)cFade["Loop"]; if ((bool)cFade["Reverse"]) { (Field)cFade["Out"] = !(bool)cFade["Out"]; currentTime = 0.0; diff --git a/src/Game/Systems/PlayerMovementSystem.cpp b/src/Game/Systems/PlayerMovementSystem.cpp index 3cf1068d..d2a8594a 100644 --- a/src/Game/Systems/PlayerMovementSystem.cpp +++ b/src/Game/Systems/PlayerMovementSystem.cpp @@ -3,6 +3,7 @@ PlayerMovementSystem::PlayerMovementSystem(SystemParams params) : System(params) , m_SprintEffectTimer(0.f) + , m_DashEffectTimer(0.f) { EVENT_SUBSCRIBE_MEMBER(m_EPlayerSpawned, &PlayerMovementSystem::OnPlayerSpawned); EVENT_SUBSCRIBE_MEMBER(m_EDoubleJump, &PlayerMovementSystem::OnDoubleJump); @@ -24,23 +25,57 @@ void PlayerMovementSystem::Update(double dt) if (LocalPlayer.Valid()){ updateVelocity(LocalPlayer, dt); } - - - m_SprintEffectTimer += dt; - if (m_SprintEffectTimer < 0.016f) { + //m_SprintEffectTimer += dt; + //if (m_SprintEffectTimer < 0.016f) { + // return; + //} + //m_SprintEffectTimer = 0.f; + //auto pool = m_World->GetComponents("SprintAbility"); + //if (pool == nullptr) { + // return; + //} + //for (auto cSprint : *pool) { + // if (cSprint.EntityID != LocalPlayer.ID && (bool)cSprint["Active"]) { + // // Spawn one afterimage for each player that sprints. + // EntityWrapper player(m_World, cSprint.EntityID); + // auto entityFile = ResourceManager::Load("Schema/Entities/SprintEffect.xml"); + // EntityWrapper sprintEffect = entityFile->MergeInto(m_World); + // auto playerModel = player.FirstChildByName("PlayerModel"); + // if (!playerModel.Valid()) { + // continue; + // } + // if (!playerModel.HasComponent("Model")) { + // continue; + // } + // if (!playerModel.HasComponent("Animation")) { + // continue; + // } + // auto playerEntityModel = playerModel["Model"]; + // auto playerEntityAnimation = playerModel["Animation"]; + // playerEntityModel.Copy(sprintEffect["Model"]); + // playerEntityAnimation.Copy(sprintEffect["Animation"]); + // sprintEffect["ExplosionEffect"]["EndColor"] = (glm::vec4)playerEntityModel["Color"]; + // ((Field)sprintEffect["ExplosionEffect"]["EndColor"]).w(0.f); + // sprintEffect["Animation"]["Speed1"] = 0.0; + // sprintEffect["Animation"]["Speed2"] = 0.0; + // sprintEffect["Animation"]["Speed3"] = 0.0; + // sprintEffect["Transform"]["Position"] = (glm::vec3)player["Transform"]["Position"]; + // sprintEffect["Transform"]["Orientation"] = (glm::vec3)player["Transform"]["Orientation"]; + // } + //} + m_DashEffectTimer += dt; + if (m_DashEffectTimer < 0.075f) { return; } - m_SprintEffectTimer = 0.f; - auto pool = m_World->GetComponents("SprintAbility"); + m_DashEffectTimer = 0.f; + auto pool = m_World->GetComponents("DashAbility"); if (pool == nullptr) { return; } - for (auto cSprint : *pool) { - if (cSprint.EntityID != LocalPlayer.ID && (bool)cSprint["Active"]) { - // Spawn one afterimage for each player that sprints. - EntityWrapper player(m_World, cSprint.EntityID); - auto entityFile = ResourceManager::Load("Schema/Entities/SprintEffect.xml"); - EntityWrapper sprintEffect = entityFile->MergeInto(m_World); + for (auto cDash : *pool) { + if (cDash.EntityID != LocalPlayer.ID && (double)cDash["CoolDownMaxTimer"] - (double)cDash["CoolDownTimer"] < 0.5) { + // Spawn one afterimage for each player that Dashes. + EntityWrapper player(m_World, cDash.EntityID); auto playerModel = player.FirstChildByName("PlayerModel"); if (!playerModel.Valid()) { continue; @@ -48,20 +83,28 @@ void PlayerMovementSystem::Update(double dt) if (!playerModel.HasComponent("Model")) { continue; } - if (!playerModel.HasComponent("Animation")) { - continue; + EntityWrapper dashEffect = playerModel.Clone(); + for (auto& cAnim : dashEffect.ChildrenWithComponent("Animation")) { + cAnim["Animation"]["Play"] = false; } - auto playerEntityModel = playerModel["Model"]; - auto playerEntityAnimation = playerModel["Animation"]; - playerEntityModel.Copy(sprintEffect["Model"]); - playerEntityAnimation.Copy(sprintEffect["Animation"]); - sprintEffect["ExplosionEffect"]["EndColor"] = (glm::vec4)playerEntityModel["Color"]; - ((Field)sprintEffect["ExplosionEffect"]["EndColor"]).w(0.f); - sprintEffect["Animation"]["Speed1"] = 0.0; - sprintEffect["Animation"]["Speed2"] = 0.0; - sprintEffect["Animation"]["Speed3"] = 0.0; - sprintEffect["Transform"]["Position"] = (glm::vec3)player["Transform"]["Position"]; - sprintEffect["Transform"]["Orientation"] = (glm::vec3)player["Transform"]["Orientation"]; + const double fadeTime = 0.5f; + for (auto& cModel : dashEffect.ChildrenWithComponent("Model")) { + EntityWrapper e(m_World, cModel.ID); + e.AttachComponent("Lifetime"); + e.AttachComponent("Fade"); + e["Fade"]["Loop"] = false; + e["Fade"]["FadeTime"] = fadeTime; + e["Fade"]["Time"] = fadeTime; + e["Lifetime"]["Lifetime"] = fadeTime; + } + dashEffect.AttachComponent("Lifetime"); + dashEffect.AttachComponent("Fade"); + dashEffect["Fade"]["Loop"] = false; + dashEffect["Fade"]["FadeTime"] = fadeTime; + dashEffect["Fade"]["Time"] = fadeTime; + dashEffect["Lifetime"]["Lifetime"] = fadeTime; + dashEffect["Transform"]["Position"] = (glm::vec3)player["Transform"]["Position"]; + dashEffect["Transform"]["Orientation"] = (glm::vec3)player["Transform"]["Orientation"]; } } } diff --git a/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp b/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp index 603f6991..945c6071 100644 --- a/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp +++ b/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp @@ -324,23 +324,23 @@ void DefenderWeaponBehaviour::fireShell(ComponentWrapper cWeapon, WeaponInfo& wi spawnTracers(cWeapon, wi, pattern); // View punch - //if (IsClient) { - // EntityWrapper camera = wi.Player.FirstChildByName("Camera"); - // if (camera.Valid()) { - // glm::vec3& cameraOrientation = camera["Transform"]["Orientation"]; - // float viewPunch = cWeapon["ViewPunch"]; - // float maxTravelAngle = cWeapon["MaxTravelAngle"]; - // float& currentTravel = cWeapon["CurrentTravel"]; - // if (currentTravel < maxTravelAngle) { - // float change = viewPunch; - // if (currentTravel + change > maxTravelAngle) { - // change = maxTravelAngle - currentTravel; - // } - // cameraOrientation.x += change; - // currentTravel += change; - // } - // } - //} + if (IsClient) { + EntityWrapper camera = wi.Player.FirstChildByName("Camera"); + if (camera.Valid()) { + Field cameraOrientation = camera["Transform"]["Orientation"]; + float viewPunch = cWeapon["ViewPunch"]; + float maxTravelAngle = (const float&)cWeapon["MaxTravelAngle"]; + Field currentTravel = cWeapon["CurrentTravel"]; + if (currentTravel < maxTravelAngle) { + float change = viewPunch; + if (currentTravel + change > maxTravelAngle) { + change = maxTravelAngle - currentTravel; + } + cameraOrientation.x(cameraOrientation.x() + change); + currentTravel += change; + } + } + } // Play animation playAnimationAndReturn(wi.FirstPersonEntity, "FinalBlend", "Fire"); diff --git a/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp b/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp index 97144b60..57534786 100644 --- a/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp +++ b/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp @@ -69,6 +69,21 @@ void SidearmWeaponBehaviour::UpdateWeapon(ComponentWrapper cWeapon, WeaponInfo& } } + // Restore view angle + if (IsClient) { + Field currentTravel = cWeapon["CurrentTravel"]; + Field returnSpeed = cWeapon["ViewReturnSpeed"]; + if (currentTravel > 0) { + float change = returnSpeed * dt; + currentTravel = glm::max(0.f, currentTravel - change); + EntityWrapper camera = wi.Player.FirstChildByName("Camera"); + if (camera.Valid()) { + Field cameraOrientation = camera["Transform"]["Orientation"]; + cameraOrientation.x(cameraOrientation.x() - change); + } + } + } + if ((bool)cWeapon["Automatic"] && canFire(cWeapon)) { fireBullet(cWeapon, wi); } @@ -183,6 +198,25 @@ void SidearmWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi magAmmo -= 1; } + // View punch + if (IsClient) { + EntityWrapper camera = wi.Player.FirstChildByName("Camera"); + if (camera.Valid()) { + Field cameraOrientation = camera["Transform"]["Orientation"]; + float viewPunch = cWeapon["ViewPunch"]; + float maxTravelAngle = cWeapon["MaxTravelAngle"]; + Field currentTravel = cWeapon["CurrentTravel"]; + if (currentTravel < maxTravelAngle) { + float change = viewPunch; + if (currentTravel + change > maxTravelAngle) { + change = maxTravelAngle - currentTravel; + } + cameraOrientation.x(cameraOrientation.x() + change); + currentTravel += change; + } + } + } + // Get weapon model based on current person EntityWrapper weaponModelEntity = getRelevantWeaponEntity(wi); if (!weaponModelEntity.Valid()) {