#TouhouDanmakufu
#Title[Spell 1]
#Text[Spell 1]
#Player[FREE]
#BackGround[User(.\img.png)]
#ScriptVersion[2]
script_enemy_main{
let BossImg = GetCurrentScriptDirectory~"bossimg.png";
#include_function ".\S_I_Load.txt"
#include_function "lib\SHOT_REPLACE\shot_replace.dnh"
let frame = 10;
let acc = 0;
let s1 = 1.5;
let angle = 0;
let l =60;
let move = 0;
let o = 15;
let n = 12;
let side = 0;
let NewX = 0;
let NewY = 0;
let imagefile = GetCurrentScriptDirectory ~ "bossimg.png";
let objLaz1=Obj_Create(OBJ_LASER);
let objid = Obj_Create(OBJ_EFFECT);
task Laser{
Obj_SetAngle(objLaz1, 90);
ObjLaser_SetLength(objLaz1, 490);
ObjLaser_SetWidth(objLaz1, 17);
ObjShot_SetDelay(objLaz1, 60);
ObjShot_SetGraphic(objLaz1, WHITE60);
Obj_SetSpeed(objLaz1, 0);
Obj_SetY(objLaz1, 0);
while(Obj_BeDeleted(objLaz1)==false) {
Obj_SetX(objLaz1, GetCenterX);
Obj_SetCollisionToObject(objLaz1, true);
ObjShot_SetBombResist(objLaz1, true);
yield;
}
}
task HitShot(id,x,y,speed,angle,graphic,delay){
let lol = 0;
let n = 0;
let numbe = 0;
let id=Obj_Create(OBJ_SHOT);
Obj_SetPosition(id,x,y);
Obj_SetAngle(id, angle);
Obj_SetSpeed(id, speed);
ObjShot_SetGraphic(id, graphic);
ObjShot_SetDelay (id, delay);
ObjShot_SetBombResist (id, false);
while(Obj_BeDeleted(id)==false){
let PosX = Obj_GetX(id);
let PosY = Obj_GetY(id);
let Pos2X = Obj_GetX(objid);
let Pos2Y = Obj_GetY(objid);
yield;
if(PosX<Pos2X+5 && PosX>Pos2X-5
&& PosY<Pos2Y+20 && PosY>Pos2Y-20){yield;
ShootDownPlayer;}
}
}
@Initialize {
SoundLoad;
LoadGraphic(BossImg);
LoadGraphic(imagefile);
SetMovePosition02(GetCenterX, GetCenterY-120, 0);
SetLife(300);
SetEnemyMarker(true);
Concentration01(60);
Concentration02(60);
MagicCircle(true);
shotinit;
Laser;
}
@MainLoop {yield;
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
frame+=1;
if(frame==30){
ReflectPlayer;
}
if(frame%2==0){
HitShot(frame+1,GetX,GetY,3,rand(0,360),SP03,10);
}
}
@DrawLoop{yield;
SetTexture(BossImg);
SetRenderState(ALPHA); SetAlpha(255);
SetGraphicScale(1.25,1.25);
SetGraphicAngle(0,0,0);
if(int(GetSpeed())==0){SetGraphicRect(0,0,33,63);}
if(GetSpeedX()<0){SetGraphicRect(32,0,69,62);}
if(GetSpeedX()>0){ SetGraphicAngle(180,0,0);
SetGraphicRect(32,0,69,62);}
DrawGraphic(GetX,GetY);
}
@Finalize{
//DeleteGraphic(BossImg);
}
task ReflectPlayer{
ObjEffect_SetTexture(objid,imagefile);
ObjEffect_SetPrimitiveType(objid, PRIMITIVE_TRIANGLEFAN);
ObjEffect_CreateVertex(objid, 4);
ObjEffect_SetScale(objid,1,1);
ObjEffect_SetRenderState(objid,ALPHA);
Obj_SetAlpha(objid,255);
while(Obj_BeDeleted(objid)==false){yield;
NewX = (GetCenterX - GetPlayerX) + GetCenterX;
NewY = GetPlayerY;
ObjEffect_SetVertexXY(objid, 0, NewX-30, NewY-30);
ObjEffect_SetVertexUV(objid, 0, 0, 0);
ObjEffect_SetVertexXY(objid, 1, NewX+30, NewY-30);
ObjEffect_SetVertexUV(objid, 1, 33, 0);
ObjEffect_SetVertexXY(objid, 2, NewX+30, NewY+30);
ObjEffect_SetVertexUV(objid, 2, 33, 63);
ObjEffect_SetVertexXY(objid, 3, NewX-30, NewY+30);
ObjEffect_SetVertexUV(objid, 3, 0, 63);
ObjEffect_SetLayer(objid, 7);
}
}
}