replica of the hardest game boss ever's last attack. don't know if it should be harder 'cause i havent played the game. Please give your opinion :O
#TouhouDanmakufu
#Title[Spiritual Larsa's final attack]
#Text[from mushishime-sama futari black label]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let frame = 0;
let GUN = 22.5;
let rotvar = 0;
let CHAINGUN = 0;
let deg = 0;
let frame2 = 0;
let deg2 = 0;
LoadSE(GetCurrentScriptDirectory ~ "tan01.wav");
LoadSE(GetCurrentScriptDirectory ~ "kira00.wav");
LoadSE(GetCurrentScriptDirectory ~ "enep01.wav");
@Initialize {
SetLife(600);
SetDamageRate(10, 10);
SetTimer(60);
SetInvincibility(30);
SetScore(500000);
SetEnemyMarker(true);
Concentration01(120);
Concentration02(60);
MagicCircle(true);
SetX(GetCenterX);
SetY(100);
SetShotAutoDeleteClip(0,0,0,0);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
frame++;
frame2++;
yield;
if(frame2 == 6){
frame2 = 0;
loop(8){
GUN += 45;
CreateShot01(GetX,GetY,4,GUN,BLUE02,0);
}
}
if(frame == 480){
SetMovePosition03(rand(GetClipMinX + 100,GetClipMaxX -100),rand(GetClipMinY + 40,GetCenterY -100),25,1);
loop(8){
GUN += 45;
CreateShotDelta(GUN);
}
frame = 0;
}
}
@Finalize {
}
task CreateShot0a(x,y,s,d,a,t) {
let deg = 0;
let obj = Obj_Create(OBJ_SHOT);
let counter = 0;
Obj_SetPosition (obj, x, y);
Obj_SetSpeed (obj, 0);
Obj_SetAngle (obj, d);
ObjShot_SetGraphic(obj, a);
ObjShot_SetDelay (obj, t);
while(! Obj_BeDeleted(obj)){
counter++;
Obj_SetSpeed(obj,counter / 100 -1);
yield;
}
}
task CreateShotDelta(d) {
let deg = d;
let obj = Obj_Create(OBJ_SHOT);
let counter = 0;
Obj_SetPosition (obj, GetX, GetY);
Obj_SetSpeed (obj, 4);
Obj_SetAngle (obj, d);
ObjShot_SetGraphic(obj, BLUE02);
ObjShot_SetDelay (obj, 10);
while(! Obj_BeDeleted(obj)){
deg+=4;
counter++;
if(counter ==3){
CreateShot0a(Obj_GetX(obj) + sin(deg ) * 40,Obj_GetY(obj) - cos(deg ) * 40,2.5,deg ,PURPLE01,30);
CreateShot0a(Obj_GetX(obj) + sin(deg +180) * 40,Obj_GetY(obj) - cos(deg +180) * 40,2.5,deg -180,PURPLE01,30);
CreateShot0a(Obj_GetX(obj) + sin(deg +90) * 40,Obj_GetY(obj) - cos(deg +90) * 40,2.5,deg +90,PURPLE01,30);
CreateShot0a(Obj_GetX(obj) + sin(deg -90) * 40,Obj_GetY(obj) - cos(deg -90) * 40,2.5,deg -90,PURPLE01,30);
counter = 0;
}
yield;
}
}
}