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:             Q.state.checkPlayerDeath();
          };
  
          Q.state.on("change.hp", this.updateHearts);
      });
  
      Q.scene("endGame",function(stage) {
  
negative.code:     };
  
      Q.state.damagePlayer = function (amount) {
          console.log("damaging player");
  
          this.set("damage", this.p.damage + amount);
      };
  
      Q.state.checkPlayerDeath = function () {
          console.log("Checking player death...");
          console.log("%o / %o", this.p.damage, this.p.hp);
          if (2 * this.p.hp > this.p.damage) return;
  
          /* player is dead */
          Q.stageScene("endGame",1, { label: "Game Over" }); 
      };
  
      /* this is a little weird: the room list is an array with
  