    let box = false;
    let a = 0;
    let boxdraai = 0;
    let focus = CSD ~ "system\marifocus.png";

    LoadGraphic(focus);

// -----------------------------------------------------------------------------------------

    task hitboxer {
	hitboxbullet(GetPlayerX,GetPlayerY,0,270,253,0); 
	a=0;
	loop{	
		// hitbox anim
		if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD){
			box=true;
			if(a<255){a+=5;}
			
		}
		else{
			if(a>0){a-=15;}
 		}
		boxdraai+=3;
		yield;
	}
    }

// -----------------------------------------------------------------------------------------

    function Focus{
	SetTexture(focus);
	SetGraphicRect(0,16,64,80); 
	SetRenderState(ALPHA);
	SetAlpha(a);
	SetGraphicAngle(0,0,boxdraai);
	SetGraphicScale(1,1);

	// focus anim
	if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD){
		if(a<255){a+=5;}
			
	}
	else{
		if(a>0){a-=15;}
 	}
	DrawGraphic(GetPlayerX,GetPlayerY);
    }
 
// -----------------------------------------------------------------------------------------

    task hitboxbullet(x,y,v,dir,kleur,delay){
	let obj = Obj_Create(OBJ_SHOT);

   	Obj_SetPosition   (obj, x, y);
    	Obj_SetSpeed      (obj, v);
    	ObjShot_SetGraphic(obj, kleur);
    	ObjShot_SetDelay  (obj, delay);
	Obj_SetAngle 	  (obj, dir);
	ObjShot_SetBombResist(obj, true);
	Obj_SetCollisionToPlayer(obj,false);
	Obj_SetCollisionToObject(obj,false);
	ObjEffect_SetLayer(obj,7);
	Obj_SetAlpha(obj, a);

	while(! Obj_BeDeleted(obj)) {
		while(!box){ObjShot_SetGraphic(obj,kleur); a=0; yield;}
				
		ObjShot_SetGraphic(obj,kleur);
		
		Obj_SetAngle(obj,dir); 	

		while(box){
			Obj_SetAngle(obj, dir);
			Obj_SetAlpha(obj, a);
			let px = GetPlayerX;
			let py = GetPlayerY;
			Obj_SetPosition(obj,px,py);
			ObjShot_SetGraphic(obj,kleur); 
			yield;
		}
		yield;
	}
		
    }