task amigo(Enemy, Name, Scale, FrameSpeed, al, tt){
    let dir = 0; let speed = 0;
    let f = 0; let f2 = 0; let o = 0;
	
    let Movement = false;
	
    let EnemyImage = ObjPrim_Create(OBJ_SPRITE_2D);
	let path = GetCurrentScriptDirectory ~ "imgBoss/" ~ Name ~ ".png";
	
    while(!Obj_IsDeleted(Enemy)){
        ObjPrim_SetTexture(EnemyImage,path);
        ObjSprite2D_SetDestCenter(EnemyImage);
        ObjRender_SetScaleXYZ(EnemyImage,Scale + sin(o)*0.10,Scale + sin(o)*0.11,0);
        ObjRender_SetAngleZ(EnemyImage,0);
        Obj_SetRenderPriority(EnemyImage,0.25);
        ObjRender_SetAlpha(EnemyImage,al); ObjRender_SetBlendType(EnemyImage, BLEND_ADD_ARGB);
		ObjRender_SetColor(EnemyImage,tt[0],tt[1],tt[2]);
		ObjRender_SetPosition(EnemyImage,ObjMove_GetX(Enemy),ObjMove_GetY(Enemy),0);
		
		let XX = GetTextureWidth(path)/4;
		let YY = GetTextureHeight(path)/3;

        dir = ObjMove_GetAngle(Enemy);
        speed = ObjMove_GetSpeed(Enemy);
		
        if(speed==0 && Movement==false){
            f++;
            if(f<1*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*0,YY*0,XX*1,YY*1);
            }
            if(f>=1*FrameSpeed && f<2*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*1,YY*0,XX*2,YY*1);
            }
            if(f>=2*FrameSpeed && f<3*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*2,YY*0,XX*3,YY*1);
            }
            if(f>=3*FrameSpeed && f<4*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*3,YY*0,XX*4,YY*1);
            }
            if(f>=4*FrameSpeed){
                f=0;
            }
            f2=0;
        }
        else if(cos(dir)>0){
            if(f2<1*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*0,YY*1,XX*1,YY*2);
            }
            if(f2>=1*FrameSpeed && f2<2*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*1,YY*1,XX*2,YY*2);
            }
            if(f2>=2*FrameSpeed && f2<3*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*2,YY*1,XX*3,YY*2);
            }
            if(f2>=3*FrameSpeed && f2<4*FrameSpeed){
                ObjSprite2D_SetSourceRect(EnemyImage,XX*3,YY*1,XX*4,YY*2);
            }
            if(f2>=4*FrameSpeed){
                Movement=true;
            }
            if(speed!=0 && f2<4*FrameSpeed+1){
                f2++;
            }
			if(f2>=4*FrameSpeed){
				f2=0;
			}
            if(speed==0 && Movement==true && f2>0){
                f2=0;
            }
            if(speed==0 && f2==0){
                Movement=false;
            }
            f=0;
        }
        else if(cos(dir)<0)
        {
            if(f2<1*FrameSpeed)
            {
                ObjSprite2D_SetSourceRect(EnemyImage,XX*0,YY*2,XX*1,YY*3);
            }
            if(f2>=1*FrameSpeed && f2<2*FrameSpeed)
            {
                ObjSprite2D_SetSourceRect(EnemyImage,XX*1,YY*2,XX*2,YY*3);
            }
            if(f2>=2*FrameSpeed && f2<3*FrameSpeed)
            {
                ObjSprite2D_SetSourceRect(EnemyImage,XX*2,YY*2,XX*3,YY*3);
            }
            if(f2>=3*FrameSpeed && f2<4*FrameSpeed)
            {
                ObjSprite2D_SetSourceRect(EnemyImage,XX*3,YY*2,XX*4,YY*3);
            }
            if(f2>=4*FrameSpeed)
            {
                Movement=true;
            }
            if(speed!=0 && f2<4*FrameSpeed+1)
            {
                f2++;
            }
			if(f2>=4*FrameSpeed)
			{
				f2=0;
			}
            if(speed==0 && Movement==true && f2>0)
            {
                f2=0;
            }
            if(speed==0 && f2==0)
            {
                Movement=false;
            }
            f=0;
        }
		
			
		o += 3.45;
        yield;
    }
    if(ObjEnemy_GetInfo(Enemy, INFO_LIFE) <= 0)
    {
        Obj_Delete(EnemyImage);
    }
}