Y'know, I'm not really a fan of the midboss spell in Stage 2, so I modified it a bit.
#TouhouDanmakufu
#Title["Drought Sign ?uMalevolent Sandstorm?v"]
#Text[Yume's midboss spellcard.]
#PlayLevel[Normal]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main
{
#include_function "script\ESP\Batch\lib\CommonVariables.dnh"
@Initialize
{
CutIn(YOUMU, "Drought Sign ?uMalevolent Sandstorm?v", imgYumecutin, 0, 0, 376, 574);
BossInitializeSpell(10,6,60,160,50000);
SetLife(320);
SetGraphicRect(1,1,64,64);
LoadGraphic(imgYumestand);
LoadGraphic(imgYumebg);
LoadGraphic(imgYumecutin);
SetColor(255,64,255);
Concentration01(120);
SetMovePosition02(cx-60*step,120,60);
CreateEnemyFromFile("script\ESP\Game\CustomItems\SpellMonitor.txt",GetX,GetY,0,0,3);
CommonShotData(1);
InitLife=GetLife;
}
@MainLoop
{
SetColor(255,64,255);
SetCollisionA(GetX(),GetY(),32);
SetCollisionB(GetX(),GetY(),24);
count++;
count2++;
frame++;
frame2++;
frame3++;
BossDamageSound(0.15,0.05);
if(count==0)
{
Concentration01(120);
SetMovePosition02(cx,160,60);
}
if(frame3>=120){
loop(1){
CreateShot01(GetX, GetY, 3, GetAngleToPlayer+rand(-10, 10), YELLOW02, 14);
PlaySE(Shot);
angle += 360/36;
}
angle += angleAcc;
angleAcc += 0.1;
frame3 = 100;
}
if(count2==120){CreateFamiliar(YELLOW,GetClipMinX, GetY,3,0,0);}
if(frame>=120){
loop(1){
CreateShot01(GetClipMinX, rand(GetClipMinY, GetClipMaxY), 2, rand(-6,6), YELLOW12, 14);
CreateShot01(GetClipMaxX, rand(GetClipMinY, GetClipMaxY), 2, rand(174,186), YELLOW12, 14);
PlaySE(Don);
angle += 360/36;
}
angle += angleAcc;
angleAcc += 0.1;
frame = 117;
}
if(radius>=140||radius<=-140){
radius=0;
}
if(frame2>=-140 && frame2 <=110){
radius++;
}
if(frame2>=111 && frame2 <= 300){
radius--;
}
if(frame2==300){
frame2=-141;
}
if(count==180)
{
step++;
count=89;
SetMovePositionRandom01(50,3,10,GetPlayerX-20,90,GetPlayerX+20,100);
}
}
@Finalize
{
DeleteGraphic(imgYumestand);
DeleteGraphic(imgYumebg);
DeleteGraphic(imgYumecutin);
let amnt = 14;
let bmnt = 1;
storysucceed=GetCommonData("Story 1 Success D");
if (GotSpellCardBonus)
{
amnt = 45;
bmnt = 4;
SetCommonData("Story 1 Get D", 1);
storysucceed++;
}
let b = 0;
let c = 0;
while (b < amnt)
{
SetCommonData("Story 1 Success D", storysucceed);
CreateItem(ITEM_SCORE, GetCenterX() + prand(-100, 100), 100 + prand(-60, 60));
b++;
}
while (c < bmnt)
{
CreateItemEx(rand_int(0,1),GetX,GetY+rand(-10,10));
c++;
}
if(GotSpellCardBonus){
CreateItem(ITEM_BOMB, GetCenterX() + prand(-100, 100), 100 + prand(-60, 60));
}
PlaySE(Dead);
}
@DrawLoop
{
draw++;
SetRenderState(ALPHA);
SetGraphicScale(0.8,1.5);
SetColor(fdin,fdin,fdin);
SetTexture(imgYumebg);
SetGraphicRect(0,0,556,409);
SetAlpha(fdin);
DrawGraphic(GetCenterX(),GetCenterY());
SetGraphicScale(1,1);
SetColor(255,255,255);
DrawText("Sunayume Minami", GetClipMinX()+20, GetClipMinY()+16, 12, 210);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicScale(0.22,0.22);
SetTexture(imgYumestand);
if(draw%16<4){
SetGraphicRect(22,0,242,556);
}else if(draw%16<7){
SetGraphicRect(22+(220*1),0,242+(220*1),556);
}else if(draw%16<=10){
SetGraphicRect(22+(220*2),0,242+(220*2),556);
}else{
SetGraphicRect(22+(220*3),0,242+(220*3),556);
}
DrawGraphic(GetX,GetY);
if(fdin<200){fdin+=5;}
}
}