anchor.diff:  Player CurrentPlayer;
   
   class Player {
  -	int width = 116, height = 137, speed = 300;
  +	static final String DEFAULT_PHYSICS = "normal";
  +	static final int NORMAL_YVEL = 1000;
  +	static final int WATER_YVEL = NORMAL_YVEL ~/ 2;
  +	static final int JUMP_YVEL = 1000;
  +	static final int TRIPLE_JUMP_YVEL = 1560;
  +	static final int SPEED = 300;
  +
  +	int get speed => physics == "normal" ? SPEED : SPEED ~/ 2;
  +
  +	bool get canTripleJump => physics != "water";
  +
  +	int width = 116, height = 137;
   	num posX, posY;
   	num yVel = 0, yAccel = -2400;
   	bool jumping = false, moving = false, climbingUp = false, climbingDown = false;
  
positive.code: 		}
  
  		//primitive jumping
  		if (inputManager.jumpKey == true && !jumping && !climbingUp && !climbingDown) {
  			num jumpMultiplier;
  			bool pieBuff = Buff.isRunning("full_of_pie");
  			bool spinachBuff = Buff.isRunning("spinach");
  			if (pieBuff) {
  				jumpMultiplier = 0.65;
  			} else if (spinachBuff) {
  				jumpMultiplier = 1.65;
  			} else {
  				jumpMultiplier = 1;
  			}
  
negative.code: 						jumpTimer = null;
  					});
  				}
  
  				if (jumpcount == 2) {
  					// triple jump
  					yVel = -(TRIPLE_JUMP_YVEL * jumpMultiplier);
  					jumpcount = 0;
  					jumpTimer.cancel();
  					jumpTimer = null;
  					if (!activeClimb) {
  						audio.playSound('tripleJump');
  					}
  				} else {
  					// normal jump
  					jumpcount++;
  					yVel = -(JUMP_YVEL * jumpMultiplier);
  				}
  			} else {
  				// triple jumping disabled
  				yVel = -(JUMP_YVEL * jumpMultiplier);
  			}
  		}
  
  