Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #東方弾幕風[Single]
- #Title["Flower of Light and Color"]
- #Text["Flower of Light and Color"]
- #Player[DEFAULT]
- #ScriptVersion[3]
- #include"script/default_system/Default_ShotConst.txt"
- #include"script/default_system/Default_Effect.txt"
- //#include"../.././Cutin.txt"
- let objEnemy;
- let bConcentrationMotion = false;
- let cx = GetStgFrameWidth() / 2;
- let cy = GetStgFrameHeight() / 2;
- let fx = 2*cx;
- let fy = 2*cy;
- let num = 0;
- let z = 0;
- @Initialize
- {
- objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
- ObjEnemy_Regist(objEnemy);
- ObjEnemy_SetDamageRate(objEnemy, 10, 10);
- TWork();
- TRender();
- // TCutin();
- TEnd();
- DeleteShotAll(TYPE_ALL, TYPE_ITEM);
- }
- @MainLoop
- {
- let ex = ObjMove_GetX(objEnemy);
- let ey = ObjMove_GetY(objEnemy);
- ObjEnemy_SetIntersectionCircleToShot(objEnemy, ex, ey, 32);
- ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ex, ey, 24);
- yield;
- }
- @Event
- {
- alternative(GetEventType())
- case(EV_REQUEST_LIFE)
- {
- SetScriptResult(500);
- }
- case(EV_REQUEST_TIMER)
- {
- SetScriptResult(70);
- }
- case(EV_REQUEST_SPELL_SCORE)
- {
- SetScriptResult(2500000);
- }
- case(EV_GAIN_SPELL)
- {
- let objScene = GetEnemyBossSceneObjectID();
- let score = truncate(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE) / 10) * 10;
- if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT) + ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0)
- {
- AddScore(score);
- }
- }
- }
- task TWork
- {
- ObjMove_SetDestAtFrame(objEnemy, cx, 60, 60);
- loop(60){yield;}
- let objScene = GetEnemyBossSceneObjectID();
- ObjEnemyBossScene_StartSpell(objScene);
- let frame = 0;
- let a = 0;
- let b = 0;
- let c = 0;
- let d = 0;
- let z = cy;
- let za = cy+1/4*fy;
- let w = cy;
- let wa = cy-1/4*fy;
- let u = cy;
- let ua = cy+1/4*fy;
- let v = cy;
- let va = cy-1/4*fy;
- while(!Obj_IsDeleted(objEnemy))
- {
- frame++;
- let ex = ObjMove_GetX(objEnemy);
- let ey = ObjMove_GetY(objEnemy);
- let px = GetPlayerX;
- let py = GetPlayerY;
- let atp = atan2(py - ey, px - ex);
- let f = frame%60;
- if (f<30 && frame%1==0)
- {
- CreateShotA1(0, z, 2, 0, DS_RICE_M_GREEN, 20);
- CreateShotA1(0, w, 2, 0, DS_RICE_M_GREEN, 20);
- CreateShotA1(0, za, 2, 0, DS_RICE_M_GREEN, 20);
- CreateShotA1(0, wa, 2, 0, DS_RICE_M_GREEN, 20);
- z+=1;
- if (z==fy) {z=cy};
- za+=1;
- if (za==fy) {za=cy};
- w-=1;
- if (w==0) {w=cy};
- wa-=1;
- if (wa==0) {wa=cy};
- }
- if (f>30 && frame%1==0)
- {
- CreateShotA1(fx, u, 2, 180, DS_RICE_M_GREEN, 20);
- CreateShotA1(fx, v, 2, 180, DS_RICE_M_GREEN, 20);
- CreateShotA1(fx, ua, 2, 180, DS_RICE_M_GREEN, 20);
- CreateShotA1(fx, va, 2, 180, DS_RICE_M_GREEN, 20);
- u+=1;
- if (u==fy) {u=cy};
- ua+=1;
- if (ua==fy) {ua=cy};
- v-=1;
- if (v==0) {v=cy};
- va+=1;
- if (va==fy) {va=cy};
- }
- if (frame%30==0)
- {
- loop(8)
- {
- let obj = CreateShotA1(rand(0,fx), 0, rand(1,3), 90+rand(-5,5), DS_BALL_BS_GREEN, 20);
- }
- ObjMove_SetAngle(obj, -90); // obj is not defined
- }
- yield;
- }
- }
- task TRender
- {
- let imgBoss = GetCurrentScriptDirectory ~ "file";
- ObjPrim_SetTexture(objEnemy, imgBoss);
- while(!Obj_IsDeleted(objEnemy))
- {
- let angle = ObjMove_GetAngle(objEnemy);
- let speed = ObjMove_GetSpeed(objEnemy);
- ObjSprite2D_SetSourceRect(objEnemy, 1 ,1, 42, 55);
- ObjSprite2D_SetDestCenter(objEnemy);
- yield;
- }
- }
- task TEnd
- {
- while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) > 0)
- {
- yield;
- }
- let ex = ObjMove_GetX(objEnemy);
- let ey = ObjMove_GetY(objEnemy);
- TExplosionA(ex, ey, 10, 0.6);
- DeleteShotAll(TYPE_ALL, TYPE_ITEM);
- Obj_Delete(objEnemy);
- DeleteShotAll(TYPE_ALL,TYPE_IMMEDIATE);
- SetAutoDeleteObject(true);
- CloseScript(GetOwnScriptID());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement