#TouhouDanmakufu
#Title[Summer "Waterfall"]
#Text[Test script]
#BackGround[User(.\black.png, 1, 1)]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let ImgBoss = "script\img\ExRumia.png";
let count = -70;
let fire = 0;
@Initialize {
SetLife(500);
SetDamageRate(8, 0);
SetTimer(256);
SetScore(1000000);
SetInvincibility( 200 );
LoadGraphic("script\stage05e01.png");
SetMovePosition02(GetCenterX, GetCenterY-120, 120);
LoadUserShotData("\CustomShots1.txt");
CutIn(KOUMA, "Summer "\""Waterfall"\", "", 0, 0, 285, 416);
SetGraphicRect(0, 0, 64, 112);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 32);
if ((count == 50)){
Cross;
Drop;
}
count++;
yield;
}
@DrawLoop {
SetTexture(ImgBoss);
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
}
task Cross{
let b = 90;
let bup = 0;
let reverse = 0;
let lrar = 0;
let kput = 20;
let krar = 0;
let Length = 0;
let n = 0;
let q = 0;
let RollerX;
let RollerY;
let RollerTwoX;
let RollerTwoY;
loop{
PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav");
ascent(a in 1..kput+1){
RollerX = rand(GetClipMinX - 300, GetClipMinX - 265) + a * 35;
RollerY = GetClipMinY;
TheshotUp(RollerX, RollerY, 2, (a*krar+b), 79, 0);
}
if (reverse == 0){
if (b > 110){
b -= 1;
}
else{
reverse++;
}
}
else{
if (b < 70){
b += 1;
}
else{
reverse--;
}
}
b += bup;
if (Length > -200){
Length -= 0;
}
loop(24){
yield;
}
}
}
task Drop{
let b = 90;
let bup = 0;
let reverse = 0;
let lrar = 0;
let kput = 1;
let krar = 0;
let Length = 0;
let n = 0;
let q = 0;
let RollerX;
let RollerY;
let RollerTwoX;
let RollerTwoY;
loop{
PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav");
ascent(a in 1..kput+1){
RollerX = GetX;
RollerY = GetY;
CreateShot01(RollerX, RollerY, 0.8, GetAngleToPlayer, 80, 30);
CreateShot01(RollerX, RollerY, 0.8, GetAngleToPlayer+20, 80, 30);
CreateShot01(RollerX, RollerY, 0.8, GetAngleToPlayer-20, 80, 30);
CreateShot01(RollerX, RollerY, 1.8, GetAngleToPlayer, 80, 30);
CreateShot01(RollerX, RollerY, 1.8, GetAngleToPlayer+20, 80, 30);
CreateShot01(RollerX, RollerY, 1.8, GetAngleToPlayer-20, 80, 30);
CreateShot01(RollerX, RollerY, 2.8, GetAngleToPlayer, 80, 30);
CreateShot01(RollerX, RollerY, 2.8, GetAngleToPlayer+20, 80, 30);
CreateShot01(RollerX, RollerY, 2.8, GetAngleToPlayer-20, 80, 30);
}
if (reverse == 0){
if (b > 110){
b -= 1;
}
else{
reverse++;
}
}
else{
if (b < 70){
b += 1;
}
else{
reverse--;
}
}
b += bup;
if (Length > -200){
Length -= 0;
}
loop(120){
yield;
}
}
}
task TheshotUp(x, y, v, angle, graphic, delay){
let obj = Obj_Create(OBJ_SHOT);
let a = 0;
let b = 0;
let dir = angle;
Obj_SetX(obj, x);
Obj_SetY(obj, y);
Obj_SetSpeed(obj, v);
Obj_SetAngle(obj, angle);
ObjShot_SetGraphic(obj, graphic);
ObjShot_SetDelay(obj, delay);
Obj_SetAutoDelete(obj, false);
ObjShot_SetBombResist(obj, true);
while (!Obj_BeDeleted(obj)){
if (a <= 100){
Obj_SetAngle(obj, angle-(a-delay)/2);
}
if (a >= 100 && a <= 500){
Obj_SetAngle(obj, angle-100+(a-delay)/2);
}
if (a >= 500 && a <= 800){
Obj_SetAngle(obj, angle+400+(a-delay)/2);
}
if (a == 400){
Obj_SetAutoDelete(obj, true);
}
a++;
yield;
}
}
}
}