#TouhouDanmakufu
#Title[-VOID-]
#Text[It can't be resisted!]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "Materials\Graphics\PlaceholderBoss.png";
#include_function "lib\ExpandedShotDatav4\shot_replace.dnh";
@Initialize{
SetLife(1000);
SetDamageRate(25,15);
SetTimer(40);
SetScore(1000);
SetMovePosition01(GetCenterX,GetCenterY,5);
LoadGraphic(imgBoss);
CutIn(KOUMA,"VOID",0,0,0,0);
ShotInit;
mainTask;
}
@MainLoop{
yield;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(0,0,64,64);
SetGraphicScale(1,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@BackGround{
}
@Finalize{
DeleteGraphic(imgBoss);
}
task mainTask{
wait(5);
fire(GetX,GetY,GetAngleToPlayer,BLUE02);
SetMovePositionRandom01(150,50,7,0,0,GetCenterX*2,GetCenterY+50);
wait(30);
fire(GetX,GetY,270,BLUE02);
}
task fire(x,y,dir,graphic){
let expand = 0;
let lsr = Obj_Create(OBJ_LASER);
ObjShot_SetBombResist(lsr,true);
ObjShot_SetGraphic(lsr,graphic);
ObjLaser_SetWidth(lsr,5);
ObjLaser_SetLength(lsr,5);
ObjLaser_SetSource(lsr,false);
Obj_SetAngle(lsr,dir);
Obj_SetPosition(lsr,x,y);
Obj_SetSpeed(lsr,0);
while(Obj_BeDeleted(lsr)==false){
if(expand<120){
ObjLaser_SetWidth(lsr,5+expand);
ObjLaser_SetLength(lsr,5+expand);
expand+=2;
wait(1);
}else{
Obj_SetSpeed(lsr,5);
Obj_SetAngle(lsr,dir);
}
if(Obj_GetX(lsr)<0||Obj_GetX(lsr)>GetCenterX*2){
burst(Obj_GetX(lsr),Obj_GetY(lsr));
Obj_Delete(lsr);
}
if(Obj_GetY(lsr)>GetCenterY*2||Obj_GetY(lsr)<0){
burst(Obj_GetX(lsr),Obj_GetY(lsr));
Obj_Delete(lsr);
}
wait(1);
}
}
task burst(x,y){
let pentblast = rand_int(0,359);
ascent(a in 1..60){
ascent(v in 1..4){
CreateShot01(x,y,3*v,360/a,SP02,0);
}
}
}
function wait(w){
loop(w){yield;}
}
}
The laser will expand to the right size, but not move. And since the whole spellcard relies on them moving...