script_spell SaryuBomb { let imgEffect1 = GetCurrentScriptDirectory~"\img\blizzard.png"; let imgBack = GetCurrentScriptDirectory~"\img\Back.png"; let Explode = false; let Damage = 40; @Initialize { SetPlayerInvincibility(300); SetSpeed(0.9,0.9); PlaySE(GetCurrentScriptDirectory~".\se\se1.wav"); PlaySE(GetCurrentScriptDirectory~".\se\se2.wav"); PlaySE(GetCurrentScriptDirectory~".\se\se4.wav"); TMain; Wind(255,10,1.5,255,255,255); Wind(192,8,1.2,0,0,255); Wind(128,6,0.9,0,255,0); Wind(128,4,0.6,255,255,255); } @MainLoop { yield; } @Finalize { } task TMain { loop(200){SetIntersectionCircle(GetPlayerX,GetPlayerY,150,10,true);yield;} DeleteSE(GetCurrentScriptDirectory~".\se\se1.wav"); PlaySE(GetCurrentScriptDirectory~".\se\se5.wav"); LoadSE(GetCurrentScriptDirectory~".\se\se1.wav"); Explode=true; BackEffect; SetSpeed(4.5,1.8); loop(40){SetIntersectionCircle(GetPlayerX,GetPlayerY,1000,Damage,true);Damage-=Damage/40;yield;} End; } task Wind(alpha,ang_s,scale,cr,cg,cb) { let obj=Obj_Create(OBJ_EFFECT); let angle=0; ObjEffect_SetTexture(obj,imgEffect1); ObjEffect_SetLayer(obj,5); ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN); ObjEffect_SetRenderState(obj,ADD); ObjEffect_CreateVertex(obj,4); ObjEffect_SetScale(obj,scale,scale); ObjEffect_SetVertexUV(obj,0,0,0); ObjEffect_SetVertexUV(obj,1,256,0); ObjEffect_SetVertexUV(obj,2,256,256); ObjEffect_SetVertexUV(obj,3,0,256); ObjEffect_SetVertexXY(obj,0,-128,-128); ObjEffect_SetVertexXY(obj,1,128,-128); ObjEffect_SetVertexXY(obj,2,128,128); ObjEffect_SetVertexXY(obj,3,-128,128); ascent(n in 0..4){ObjEffect_SetVertexColor(obj,n,alpha,cr,cg,cb);} loop{ Obj_SetPosition(obj,GetPlayerX,GetPlayerY); ObjEffect_SetAngle(obj,0,0,angle); angle-=ang_s; if(Explode==true){Obj_Delete(obj);} if(Obj_BeDeleted(obj)==true){break;} yield; } } task BackEffect { let obj=Obj_Create(OBJ_EFFECT); let alpha=192; ObjEffect_SetTexture(obj,imgBack); ObjEffect_SetLayer(obj,5); ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLEFAN); ObjEffect_SetRenderState(obj,ADD); Obj_SetPosition(obj,GetCenterX,GetCenterY); ObjEffect_SetScale(obj,1,1); ObjEffect_CreateVertex(obj,4); ObjEffect_SetVertexUV(obj,0,0,0); ObjEffect_SetVertexUV(obj,1,512,0); ObjEffect_SetVertexUV(obj,2,512,512); ObjEffect_SetVertexUV(obj,3,0,512); ObjEffect_SetVertexXY(obj,0,-256,-256); ObjEffect_SetVertexXY(obj,1,256,-256); ObjEffect_SetVertexXY(obj,2,256,256); ObjEffect_SetVertexXY(obj,3,-256,256); loop{ ascent(n in 0..4){ObjEffect_SetVertexColor(obj,n,alpha,255,255,255);} alpha-=6; if(alpha<=0){Obj_Delete(obj);} if(Obj_BeDeleted(obj)==true){break;} yield; } } }