{
	gravity = 0;
	gravity_direction = 270;

	if(place_free(x+hspeed,y+vspeed)) move_bounce_solid(0);

	if(VAR[0]>100){
		with(Parts[0]){ image_alpha = 0.2; };
		with(Parts[1]){ image_alpha = 0.2; };
	}else{
		with(Parts[0]){ image_alpha = 0.3*sin(3*other.VAR[0]); };
		with(Parts[1]){ image_alpha = 0.3*sin(3*other.VAR[0]); };
	}
	VAR[0] += 1;

	if(objPlayer.HP<40){
		if( !IF_VOID() ){
			check = collision_enemy(x,y,60,0,0,NULL,0,0.1,0);
			if(check){
				if(check.HP<0 && objHead.sprite_index != sprRapeEye){
					VAR[1] = true;
					VAR[2] = 0;
					objHead.sprite_index = sprRapeEye;
					check2 = collision_enemy(x,y,60,0,0,JUCKED,0,500,1000);
					if(check2){
						effect_create_above(ef_smokeup,x,y,2,c_black);
						quake(20,30);
						flash(c_black,1,0.02);
					}
				}
				check.RECOVER = 0;
				if(random(100)<5) effect_create_above(ef_smokeup,x,y,0,c_black);
			}
		}

		if(Parts[0].image_blend==14876346) effect_create_above(ef_smokeup,x,y,1,9149939);
		with(objPlayer){
			if(!collision_line(x,y,other.x,other.y,objBlock,0,1)){
				with(other){ motion_add(180+point_direction(other.x,other.y,x,y),0.1); }
			}
		}
		Parts[0].image_blend = 9149939;
		Parts[1].image_blend = 9149939;
	}else{
		INV = true;
		if(CATCH){
			VAR[0] = 0;
			effect_create_above(ef_smokeup,x,y,1,Parts[0].image_blend);
			x = objPlayer.x+objPlayer.image_xscale*(200-random(150));
			y = objPlayer.y-50+random(100);
			effect_create_above(ef_smokeup,x,y,1,Parts[0].image_blend);
			Parts[0].image_alpha = 0;
			Parts[1].image_alpha = 0;
		}
		Parts[0].image_blend = 14876346;
		Parts[1].image_blend = 14876346;
	}

	if(VAR[1]){

		Parts[0].image_alpha = 0.1;
		Parts[1].image_alpha = 0.1;
		INV = 10;
		with(objPlayer){
			HP = -10;
			other.x = x;
			other.y = y;
			instance_deactivate_object(other);

			if(BIND){
				if(random(100)<5) BIND_OFF();
			}else{
				if( instance_exists(objEnemy_Core) ){
					enemy = instance_nearest(x,y,objEnemy_Core);
					COMBO = round(random(9));
					if(enemy.x > x){
						if(motion == STAND) force_motion(JUCK_STAND,0,5);
						if(motion == JUCK_STAND) motion_just(JUCK_WALK,0);
						if(point_distance(x,y,objPlayer.x,objPlayer.y)>96){ if(IF_TURN()) image_xscale = -1; }
						if( !IF_ATTACK() && random(100)<5 ){
							if(air){
								if( motion == JUMP_U || motion == JUMP_D ){
									if(up) force_motion(ATTACK_JUMPGUN_FRONT,0,2);
									else force_motion(ATTACK_JUMPKICK_A,0,2);
									COMBO = 0;
								}
							}else{
								if( motion == FIGHT ){
									if(COMBO == 4) force_motion(ATTACK_PUNCH_A,1,2);
									else if(COMBO == 6) force_motion(CATCH_A,0,1);
									else if(COMBO == 1) force_motion(ATTACK_KICK_B,0,1);
									else if(COMBO == 2) force_motion(ATTACK_KICK_A,1,2);
									else force_motion(ATTACK_PUNCH_B,0,2);
									COMBO = 0;
								}else if( IF_WALKABLE() ){
									if(COMBO == 8) force_motion(ATTACK_GUN_FRONT,0,5);
									else if(COMBO == 4) force_motion(ATTACK_PUNCH_A,0,10);
									else if(COMBO == 1) force_motion(ATTACK_KICK_B,0,5);
									else force_motion(ATTACK_PUNCH_C,1,3);
									COMBO = 0;
								}
							}
						}
					}else{
						if(motion == STAND) force_motion(JUCK_STAND,0,5);
						if(motion == JUCK_STAND) motion_just(JUCK_WALK,0);
						if(point_distance(x,y,objPlayer.x,objPlayer.y)>96){ if(IF_TURN()) image_xscale = 1; }
						if( !IF_ATTACK() && random(100)<5 ){
							if(air){
								if( motion == JUMP_U || motion == JUMP_D ){
									if(up) force_motion(ATTACK_JUMPGUN_FRONT,0,2);
									else force_motion(ATTACK_JUMPKICK_A,0,2);
									COMBO = 0;
								}
							}else{
								if( motion == FIGHT ){
									if(COMBO == 4) force_motion(ATTACK_PUNCH_A,1,2);
									else if(COMBO == 6) force_motion(CATCH_A,0,1);
									else if(COMBO == 1) force_motion(ATTACK_KICK_B,0,1);
									else if(COMBO == 2) force_motion(ATTACK_KICK_A,1,2);
									else force_motion(ATTACK_PUNCH_B,0,2);
									COMBO = 0;
								}else if( IF_WALKABLE() ){
									if(COMBO == 8) force_motion(ATTACK_GUN_FRONT,0,5);
									else if(COMBO == 4) force_motion(ATTACK_PUNCH_A,0,10);
									else if(COMBO == 1) force_motion(ATTACK_KICK_B,0,5);
									else force_motion(ATTACK_PUNCH_C,1,3);
									COMBO = 0;
								}
							}
						}
					}
					if(!place_free(x-image_xscale,y)){ if(IF_TURN()) image_xscale = image_xscale*-1; }
				}else{
					if(motion == STAND || motion == FIGHT ) force_motion(JUCK_STAND,0,5);
					if(random(100)<0.5 && motion == JUCK_STAND) force_motion(JUCK_WALK,0,3);
					if(random(100)<0.5 && motion == JUCK_WALK) force_motion(JUCK_STAND,0,3);
					if(!place_free(x-image_xscale,y)){ if(IF_TURN()) image_xscale = image_xscale*-1; }
				}

				if( IF_DOWN() ){
					INV = 100;
					if( motion == DOWN_UT_9 ) force_motion(DOWN_UT_R,0,1);
					if( motion == DOWN_AO_9 ) force_motion(DOWN_AO_R,0,1);
				}
			}
			instance_activate_object(other);
			if(b1 == 2 || b2 == 2 || b3 == 2) other.VAR[2] += 1;
			if(other.VAR[2]>100){
				BIND_OFF();
				other.VAR[1] = false;
				objHead.sprite_index = sprHead;
				flash(c_white,1,0.02);
				INV = 120;
				HP = 0;
				force_motion(DOWN_UT_R,0,1);
			}
		}
	}
}