Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Single]
- #Title[Spell 3]
- #Text[An attempt at making a non-spell]
- #Player[REIMU]
- #PlayLevel[Normal]
- #ScriptVersion[2]
- script_enemy_main{
- let D = GetCurrentScriptDirectory;
- let bg = D ~ "system\trees nighttime.png";
- let shot = D ~ "supershot.txt";
- let s1 = D ~ "sfx\Shot.wav";
- let s2 = D ~ "sfx\Wave.wav";
- let slide = 0;
- let slide2 = 0;
- @Initialize{
- SetLife(2500);
- SetTimer(60);
- SetScore(100000);
- LoadGraphic(bg);
- LoadUserShotData(shot);
- LoadSE(s1);
- LoadSE(s2);
- fire;
- move;
- }
- @MainLoop{
- SetCollisionA(GetX,GetY,32);
- SetCollisionB(GetX,GetY,16);
- yield;}
- @DrawLoop{
- }
- @BackGround{
- SetTexture(bg);
- SetRenderState(ALPHA);
- SetAlpha(255);
- SetGraphicRect(0,0,10000,10000);
- SetGraphicScale(1,1);
- SetGraphicAngle(0,0,0);
- DrawGraphic(GetCenterX-slide2,GetCenterY+slide);
- slide+=2; slide2-=1; }
- @Finalize{DeleteGraphic(bg); DeleteSE(s1); DeleteSE(s2);
- loop(20){CreateItem(ITEM_SCORE,GetX+rand(-150,150),GetY+rand(50,200));} }
- task move{
- loop{
- SetMovePosition01(GetCenterX,GetCenterY-80,10);
- wait(120);
- }
- }
- task fire{
- wait(60);
- let dir = 45;
- loop{
- loop(5){
- loop(10){
- b(GetX+30*cos(dir),GetY+30*sin(dir), 2, dir, 231, 0);
- PlaySE(s1); dir+=30; }
- wait(10);
- dir += 17;
- }
- wait(180);}}
- wait(180);}}
- task b(x,y,v,dir,graphic,delay){
- let obj=Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetSpeed(obj,v);
- Obj_SetAngle(obj,dir);
- ObjShot_SetGraphic(obj,graphic);
- ObjShot_SetDelay(obj,delay);
- ObjShot_SetBombResist(obj, true);
- while(!Obj_BeDeleted(obj)){
- wait(13);
- if(Obj_GetY(obj) > GetClipMaxY) {
- loop(6){b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20);wait(10);}
- PlaySE(s1); Obj_Delete(obj);}
- if(Obj_GetY(obj) < GetClipMinY) {
- loop(6){b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20);wait(10);}
- PlaySE(s1); Obj_Delete(obj);}
- if(Obj_GetY(obj) > GetClipMaxX) {
- loop(6){b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20); wait(10);}
- PlaySE(s1); Obj_Delete(obj);}
- if(Obj_GetY(obj) < GetClipMinX) {
- loop(6)b2(Obj_GetX(obj),Obj_GetY(obj),rand(1,3),dir-rand(160,200),152,20); wait(10);}
- PlaySE(s1); Obj_Delete(obj);}
- }
- }
- task b2(x,y,v,dir,graphic,delay){
- let obj=Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetSpeed(obj,v);
- Obj_SetAngle(obj,dir);
- ObjShot_SetGraphic(obj,graphic);
- ObjShot_SetDelay(obj,delay);
- ObjShot_SetBombResist(obj, true);
- while(!Obj_BeDeleted(obj)){
- wait(60);
- Obj_SetSpeed(obj,1);
- wait(30);
- Obj_SetSpeed(obj,1);
- Obj_SetAngle(obj,dir-rand(-20,20));
- wait(600);
- yield;}
- }
- function wait(w){loop(w){yield;}
- ]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement