anchor.diff:              this._super(p);
               this.add("2d");
   
  -            this.on("bump", this.melee);
  +            this.on("bump.left", this.melee);
  +            this.damagePlayer = Q.debounce(function (amount) {
  +                Q.state.damagePlayer(amount);
  +            })
           },
   
           melee: function (col) {
  +            console.log("bump.left");
  +
               if (col.obj.isA("Player")) {
  -                Q.state.damagePlayer();
  +                this.damagePlayer(1);
               }
           }
       });
  
positive.code:         stage.collisionLayer(room);
          stage.p.rooms[Q.state.get("room")] = room;
  
          var player = stage.insert(new Q.Player({ x: starting_x, y: starting_y }));
  
          stage.getRoom = function (i) {
              return this.p.rooms[i];
  
negative.code:         /* when the player loses hearts we 
           * do this */
          this.updateHearts = function (hp) {
              console.log("updating hearts...");
              var length = stage.p.hearts.length;
  
              for (; length > hp; length--) {
  