
	let GCSD=GetCurrentScriptDirectory;

	let imgEmpegh1=GPSD~"img\empegh1.png";

	let bgscroll=-200;
	let nameopacity=0;
	let EmpeghFrame=0;

	let eex=[-100,-100,-100,-100,-100,-100,-100,-100,-100];
	let eey=[0,0,0,0,0,0,0,0,0];
	let eet=[0,0,0,0,0,0,0,0,0];
	let eec=[[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]];
	let eea1=[0,0,0,0,0,0,0,0,0];
	let eea2=[0,0,0,0,0,0,0,0,0];

	let echox=[0,-33,28];
	let echoy=[-55,15,15];


function EmpeghDrawLogic{
	CyberDrawLogic(50,70);
	EmpeghFrame++;
	loop(9){
		eet[EmpeghFrame%9]=eet[EmpeghFrame%9]-1;
		EmpeghFrame++;
	}
	EmpeghFrame=EmpeghFrame-9;

	if(EmpeghFrame%3==0){
		eex[trunc(EmpeghFrame/3%9)]=echox[trunc(EmpeghFrame/3%3)]+GetX+rand(-2,2);
		eey[trunc(EmpeghFrame/3%9)]=echoy[trunc(EmpeghFrame/3%3)]+GetY+rand(-2,2);
		eet[trunc(EmpeghFrame/3%9)]=27;
		eec[trunc(EmpeghFrame/3%9)]=RainbowArray(EmpeghFrame*17.2,180,75);
		eea1[trunc(EmpeghFrame/3%9)]=rand(-60,60);
		eea2[trunc(EmpeghFrame/3%9)]=rand(-60,60);
	}
}

let ek;

function EmpeghDrawLoop {
	CyberDraw;
	SetTexture(imgEmpegh1);

	SetGraphicRect(0,0,88,128);
	SetGraphicAngle(0,0,0);
	SetAlpha(255);
	SetGraphicScale(1,1);
	DrawGraphic(GetX-2,GetY-5+cos(EmpeghFrame*4)*2);

	SetGraphicRect(0+trunc(EmpeghFrame/4%4)*64,128,64+trunc(EmpeghFrame/4%4)*64,256);
	DrawGraphic(GetX-14,GetY-5+cos(EmpeghFrame*4)*2);

	SetGraphicRect(196,0,256,64);
	ek=trunc(EmpeghFrame/3);
	loop(9){
		SetGraphicAngle(eea1[ek%9],eea2[ek%9],0);
		SetGraphicScale((27-eet[ek%9])/7,(27-eet[ek%9])/7);
		SetColor(eec[ek%9][0],eec[ek%9][1],eec[ek%9][2]);
		SetAlpha(eet[ek%9]*(200/27));
		DrawGraphic(eex[ek%9],eey[ek%9]);
		ek++;
	}

	DrawFunctions;
}

task EmpeghPushbackEffect{
	loop{
		EmpeghPushbackEffect2(GetAngleToPlayer+90*RandDir,rand(0,30));
		Wait(5);
	}
}
task EmpeghPushbackEffect2(angle,offset){
	let xv=cos(angle)*offset;
	let yv=sin(angle)*offset;
	let a=GetAngleToPlayer;
	let xv2=cos(a);
	let yv2=sin(a);

	let obj=InitEffect(0,0,imgEmpegh1,4,ADD,1);
	ObjEffect_SetXYRect(obj,-20,-20,20,20);
	ObjEffect_SetUVRect(obj,101,1,163,63);

	let scale=1;
	let frame=0;
	let percent=0;
	let size=rand(0.5,1);
	let rotation=rand(0,360);
	loop(40){
		percent=(frame/20)-1.3;
		offset=sin(frame*(180/40))/2+0.5;
		Obj_SetColor(obj,4,sin(lower(frame*(90/20),90))*255,255,255,255);
		ObjEffect_SetScale(obj,scale*cos(rotation)*size,size);
		Obj_SetPosition(obj,GetPlayerX+xv*offset+xv2*percent*60,GetPlayerY+yv*offset+yv2*percent*60);
		ObjEffect_SetAngle(obj,0,0,GetAngleToPlayer-90);
		frame++;
		rotation+=10;
		scale-=1/40;
		yield;
	}
	Obj_Delete(obj);
}
sub EmpeghInit{
}
sub EmpeghFinalize{
}
