@Override
  public void simpleUpdate(float tpf){
      elapsedTime += tpf;
      
      //handle messages from server
      handleMessages();
      /*
      for(int a=0;a<5;a++){
        //ninjas[a].rotate(0, 2*tpf, 0);
        ninjas[a].move(tpf*2, 0, tpf*2);
      }
      */
//      System.out.println("Amount of units : " + units.size());
//      long track = System.currentTimeMillis();
      for(int a=0;a<units.size();a++){
          units.get(a).update(tpf);
      }
//      long track2 = System.currentTimeMillis();
//      System.out.println("update units took : " + (track2-track) + " milliseconds");
      for(int a=0;a<projectiles.size();a++){
          projectiles.get(a).update(tpf);
      }
      for(int a=0;a<effects.size();a++){
          Effect e = effects.get(a);
          e.update(tpf);
          if(e.duration<=0){
              //remove the effects parent from rootNode and remove if from effects
              rootNode.detachChild(e.effect);
              effects.remove(a);
              a--;
          }
      }
      cameraMove(tpf);
      updateHUD();
//      track = System.currentTimeMillis();
      for(int a=0;a<updatedFogs.size();a++){
          FogNode upd = updatedFogs.get(a);
          if(upd.lastSeenVisible && upd.vision<=0){
              showFog(upd);
          }
          else if(!upd.lastSeenVisible && upd.vision>0){
              hideFog(upd);
          }
      }
      updatedFogs.clear();
//      track2 = System.currentTimeMillis();
//      System.out.println("update fogs took : " + (track2-track) + " milliseconds");
  }