Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu
- #Title["Basic Spell Card 1"]
- #BackGround["User(./tile.png, 0, 5)"]
- #BGM[".\bgm.mp3"]
- #Player[FREE]
- #ScriptVersion[3]
- #include "script/default_system/Default_ShotConst.txt"
- let objEnemy;
- let objPlayer;
- let frame = 0;
- let cycle = 0;
- let cycle2 = 0;
- let ex_angle = 0;
- @Event
- {
- alternative(GetEventType())
- case(EV_REQUEST_LIFE)
- {
- SetScriptResult(5000);
- }
- }
- @Initialize
- {
- objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
- objPlayer = GetPlayerObjectID();
- ObjEnemy_Regist(objEnemy);
- let imgKoishi = GetCurrentScriptDirectory ~ "stg7enm.png";
- ObjPrim_SetTexture(objEnemy,imgKoishi);
- ObjSprite2D_SetSourceRect(objEnemy, 64, 1, 127, 64);
- ObjSprite2D_SetDestCenter(objEnemy);
- let cx = GetStgFrameWidth() /2;
- ObjMove_SetDestAtFrame(objEnemy, cx, 60, 60);
- }
- @MainLoop
- {
- let ex = ObjMove_GetX(objEnemy);
- let ey = ObjMove_GetY(objEnemy);
- if((frame == 30) && (cycle <= 25))
- {
- let px = GetPlayerX();
- let py = GetPlayerY();
- let angleToPlayer1 = atan2(py - (ey-50), px - (ex+50));
- let angleToPlayer2 = atan2(py - (ey-50), px - (ex-50));
- let angleToPlayer3 = atan2(py - (ey+50), px - (ex+50));
- let angleToPlayer4 = atan2(py - (ey+50), px - (ex-50));
- CreateShotA1(ex+50, ey-50, 3, angleToPlayer1, DS_NEEDLE_SKY, 30);
- CreateShotA1(ex-50, ey-50, 3, angleToPlayer2, DS_NEEDLE_SKY, 30);
- CreateShotA1(ex+50, ey+50, 3, angleToPlayer3, DS_NEEDLE_SKY, 30);
- CreateShotA1(ex-50, ey+50, 3, angleToPlayer4, DS_NEEDLE_SKY, 30);
- frame = 0;
- cycle++;
- }
- if((frame == 20) && (cycle > 25))
- {
- let angle = 0;
- let target = ey + 50;
- while(angle <= 360)
- {
- let obj = CreateShotA2(ex, ey, 5, angle + ex_angle, -0.10, 1, DS_LIGHT_RED, 30);
- ObjMove_AddPatternA4(obj, 350-ex_angle, 30, 0, 0, 0, 0, objEnemy, NO_CHANGE);
- angle += 15;
- }
- cycle2++;
- ex_angle++;
- frame = 0;
- if(cycle2 == 50)
- {
- cycle = 0;
- cycle2 = 0;
- }
- }
- ObjEnemy_SetIntersectionCircleToShot(objEnemy, ex, ey, 32);
- ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ex, ey, 24);
- frame++;
- if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) <= 0)
- {
- Obj_Delete(objEnemy);
- CloseScript(GetOwnScriptID());
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment