Index: VulkanGame.vcxproj
===================================================================
--- VulkanGame.vcxproj	(revision 317ad137a0081587a1c6c9511faa0b8fc92097f7)
+++ VulkanGame.vcxproj	(revision 5192672b1c0c73942402fdf976ffca72ebdbf08d)
@@ -72,5 +72,5 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <IncludePath>include;$(VULKAN_SDK)/Include;$(VULKAN_SDK)/Third-Party/Include;$(IncludePath)</IncludePath>
-    <LibraryPath>lib;$(VULKAN_SDK)\Lib;$(LibraryPath)</LibraryPath>
+    <LibraryPath>lib;$(VULKAN_SDK)/Lib;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -177,4 +177,5 @@
     <ClInclude Include="gui\screen.hpp" />
     <ClInclude Include="gui\ui-element.hpp" />
+    <ClInclude Include="gui\ui-value.hpp" />
     <ClInclude Include="IMGUI\imconfig.h" />
     <ClInclude Include="IMGUI\imgui.h" />
Index: VulkanGame.vcxproj.filters
===================================================================
--- VulkanGame.vcxproj.filters	(revision 317ad137a0081587a1c6c9511faa0b8fc92097f7)
+++ VulkanGame.vcxproj.filters	(revision 5192672b1c0c73942402fdf976ffca72ebdbf08d)
@@ -5,10 +5,4 @@
     <ClCompile Include="FileStackWalker.cpp" />
     <ClCompile Include="game-gui-sdl.cpp" />
-    <ClCompile Include="gui\button.cpp" />
-    <ClCompile Include="gui\game-screen.cpp" />
-    <ClCompile Include="gui\main-screen.cpp" />
-    <ClCompile Include="gui\panel.cpp" />
-    <ClCompile Include="gui\screen.cpp" />
-    <ClCompile Include="gui\ui-element.cpp" />
     <ClCompile Include="logger.cpp" />
     <ClCompile Include="main-vulkan.cpp" />
@@ -38,4 +32,22 @@
       <Filter>IMGUI SDL Reference</Filter>
     </ClCompile>
+    <ClCompile Include="gui\button.cpp">
+      <Filter>gui</Filter>
+    </ClCompile>
+    <ClCompile Include="gui\game-screen.cpp">
+      <Filter>gui</Filter>
+    </ClCompile>
+    <ClCompile Include="gui\main-screen.cpp">
+      <Filter>gui</Filter>
+    </ClCompile>
+    <ClCompile Include="gui\panel.cpp">
+      <Filter>gui</Filter>
+    </ClCompile>
+    <ClCompile Include="gui\screen.cpp">
+      <Filter>gui</Filter>
+    </ClCompile>
+    <ClCompile Include="gui\ui-element.cpp">
+      <Filter>gui</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
@@ -48,10 +60,4 @@
     <ClInclude Include="graphics-pipeline.hpp" />
     <ClInclude Include="graphics-pipeline_vulkan.hpp" />
-    <ClInclude Include="gui\button.hpp" />
-    <ClInclude Include="gui\game-screen.hpp" />
-    <ClInclude Include="gui\main-screen.hpp" />
-    <ClInclude Include="gui\panel.hpp" />
-    <ClInclude Include="gui\screen.hpp" />
-    <ClInclude Include="gui\ui-element.hpp" />
     <ClInclude Include="logger.hpp" />
     <ClInclude Include="StackWalker.h" />
@@ -86,4 +92,25 @@
       <Filter>IMGUI SDL Reference</Filter>
     </ClInclude>
+    <ClInclude Include="gui\button.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
+    <ClInclude Include="gui\game-screen.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
+    <ClInclude Include="gui\main-screen.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
+    <ClInclude Include="gui\panel.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
+    <ClInclude Include="gui\screen.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
+    <ClInclude Include="gui\ui-element.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
+    <ClInclude Include="gui\ui-value.hpp">
+      <Filter>gui</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
@@ -114,4 +141,7 @@
       <UniqueIdentifier>{e540b46d-7c98-427d-a28d-4fc20d495826}</UniqueIdentifier>
     </Filter>
+    <Filter Include="gui">
+      <UniqueIdentifier>{56453757-f40b-4772-898b-04121b61d0fc}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
 </Project>
Index: vulkan-game.cpp
===================================================================
--- vulkan-game.cpp	(revision 317ad137a0081587a1c6c9511faa0b8fc92097f7)
+++ vulkan-game.cpp	(revision 5192672b1c0c73942402fdf976ffca72ebdbf08d)
@@ -823,5 +823,5 @@
          }
 
-         switch(e.type) {
+         switch (e.type) {
             case UI_EVENT_QUIT:
                cout << "Quit event detected" << endl;
@@ -1047,5 +1047,5 @@
          BaseEffectOverTime* eot = *it;
 
-         eot->applyEffect();
+         eot->applyEffect(curTime);
 
          it++;
@@ -2043,5 +2043,5 @@
          // TODO: Use some sort of smart pointer instead
          eot = new EffectOverTime<AsteroidVertex, SSBO_Asteroid>(asteroidPipeline, asteroidObjects, closestAsteroidIndex,
-            offset_of(&SSBO_Asteroid::hp), -20.0f);
+            offset_of(&SSBO_Asteroid::hp), curTime, -20.0f);
          effects.push_back(eot);
       }
@@ -2064,5 +2064,5 @@
    laser.vertices[7].pos.z = -length;
 
-   // TODO: Consider if I want to set a flag and do this update in in updateScene() instead
+   // TODO: Consider if I want to set a flag and do this update in updateScene() instead
    updateObjectVertices(this->laserPipeline, laser, index);
 }
Index: vulkan-game.hpp
===================================================================
--- vulkan-game.hpp	(revision 317ad137a0081587a1c6c9511faa0b8fc92097f7)
+++ vulkan-game.hpp	(revision 5192672b1c0c73942402fdf976ffca72ebdbf08d)
@@ -5,4 +5,5 @@
 #include <chrono>
 #include <map>
+#include <vector>
 
 #define GLM_FORCE_RADIANS
@@ -135,7 +136,4 @@
 // them mamdatory
 
-// TODO: Make a singleton timer class instead
-static float curTime;
-
 
 // TODO: Look into using dynamic_cast to check types of SceneObject and EffectOverTime
@@ -144,5 +142,5 @@
    bool deleted;
 
-   virtual void applyEffect() = 0;
+   virtual void applyEffect(float curTime) = 0;
 
    BaseEffectOverTime() :
@@ -166,10 +164,10 @@
    EffectOverTime(GraphicsPipeline_Vulkan<VertexType, SSBOType>& pipeline,
          vector<SceneObject<VertexType, SSBOType>>& objects, unsigned int objectIndex,
-         size_t effectedFieldOffset, float changePerSecond) :
+         size_t effectedFieldOffset, float startTime, float changePerSecond) :
          pipeline(pipeline),
          objects(objects),
          objectIndex(objectIndex),
          effectedFieldOffset(effectedFieldOffset),
-         startTime(curTime),
+         startTime(startTime),
          changePerSecond(changePerSecond) {
       size_t ssboOffset = offset_of(&SceneObject<VertexType, SSBOType>::ssbo);
@@ -181,5 +179,5 @@
    }
 
-   void applyEffect() {
+   void applyEffect(float curTime) {
       if (objects[objectIndex].ssbo.deleted) {
          this->deleted = true;
@@ -364,8 +362,9 @@
       vector<BaseEffectOverTime*> effects;
 
+      // TODO: Make a separate TImer class
+      // It could also deal with the steady_clock vs high_resolution_clock issue
       time_point<steady_clock> startTime;
-      float prevTime, elapsedTime;
-
-      float fpsStartTime;
+      float fpsStartTime, curTime, prevTime, elapsedTime;
+
       int frameCount;
 
