Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Plural]
- #ScriptVersion[3]
- #Title["Revenge"]
- #Text["F%#$ Chang'e"]
- #Background["script/Sandbox/Kanjuden Boss Rush/bg/BG.txt"]
- #include "script/Sandbox/Kanjuden Boss Rush/eff/effects.txt"
- let bossX = 0;
- let bossY = 0;
- let xpos = 0;
- let ypos = 0;
- let bossdir = 0;
- let obj = ObjEnemyBossScene_Create();
- let circleimg = "script/Sandbox/Kanjuden Boss Rush/eff/eff_magicsquare.png";
- @Initialize{
- TPlural;
- SetPlayerLife(45);
- SetPlayerSpell(3);
- MagicCircle_Plural(96);
- }
- @Event{
- }
- @MainLoop{
- xpos = GetCommonData("BossX",GetStgFrameWidth());
- ypos = GetCommonData("BossY",130);
- bossdir = GetCommonData("BossMove",0);
- if(xpos>0){bossX = xpos;}
- if(ypos>0){bossY = ypos;}
- yield;
- }
- function wait(w) {
- loop(w) { yield; }
- }
- function MagicCircle_Create {
- let circleobj = ObjPrim_Create(OBJ_SPRITE_3D);
- ObjPrim_SetTexture(circleobj, circleimg);
- ObjRender_SetBlendType(circleobj, BLEND_ALPHA );
- //ObjSprite3D_SetSourceRect(circleobj, 0, 0, 256, 256 );
- ObjSprite3D_SetSourceDestRect(circleobj, 0, 0, 256, 256 );
- //ObjSprite3D_SetDestRect(circleobj, -256, -256, 0, 0);
- //ObjRender_SetAngleX(circleobj, -30);
- //ObjRender_SetScaleXYZ(circleobj, 1.4, 1.4, 0 );
- return circleobj;
- }
- task MagicCircle_Plural(delay) {
- let circleobj = [MagicCircle_Create];
- let scale = 0;
- let scale1 = 1.4;
- let scaleA = 0;
- let angle = 0;
- let angle1 = 3.6;
- let speed = 0;
- let speed1 = 0;
- let speed2 = 0;
- let speed3 = 0;
- let alpha = 144;
- loop(delay) {
- ObjRender_SetScaleXYZ(circleobj[0], scale, scale, 0 );
- Obj_SetRenderPriorityI(circleobj[0], 1 );
- ObjRender_SetAlpha(circleobj[0], 0 );
- yield;
- }
- while(!Obj_IsDeleted(GetEnemyBossSceneObjectID())) {
- ObjRender_SetAlpha(circleobj[0], alpha );
- Obj_SetRenderPriorityI(circleobj[0], 32 );
- ObjRender_SetPosition(circleobj[0],-bossX,-bossY,280);
- if(scale<scale1) {
- scale += scale1/28;
- angle -= angle1;
- angle1 += 0.02;
- ObjRender_SetScaleXYZ(circleobj[0],scale,scale,0);
- ObjRender_SetAngleXYZ(circleobj[0],25 - 25 * cos(speed),2 + 27 * sin(speed),angle);
- }
- //ObjRender_SetPosition(circleobj,ObjMove_GetX(enemyID),ObjMove_GetY(enemyID),0);
- ObjRender_SetAngleXYZ(circleobj[0], -21 - 21 * cos(speed), 2 + 25 * sin(speed), angle - speed3*15 - speed*1.8 ); //Sets the angle and the rotation speed of the circle.
- ObjRender_SetScaleXYZ(circleobj[0], scale1 - 0.1 * sin( speed*0 ), scale1 - 0.1 * sin( speed*0 ), 0 ); //Determines if the circle size changes while rotating. '0' means no change in size.
- if( speed1 < 1 ){ speed2 += 2; }
- speed1 = 1 * sin( speed2 );
- if( scale1 < 1 ){ scaleA += 2; }
- scale1 = 1 * sin( scaleA );
- if( scale1 >= 1 && speed1 >= 1 ){ speed += 0.6; }
- if(ObjRender_GetAngleX(circleobj[0])==0 && ObjRender_GetAngleZ(circleobj[0])==0) {
- ObjSprite3D_SetBillboard(circleobj[0],true);
- }
- else { ObjSprite3D_SetBillboard(circleobj[0],false); }
- yield;
- }
- Obj_Delete(circleobj);
- }
- task TPlural{
- let CSD=GetCurrentScriptDirectory();
- wait(20);
- ObjEnemyBossScene_Add(obj,0,CSD~"Junko/nsp01.txt");
- ObjEnemyBossScene_Add(obj,0,CSD~"Junko/sp01.txt");
- ObjEnemyBossScene_Add(obj,1,CSD~"Junko/nsp02.txt");
- ObjEnemyBossScene_LoadInThread(obj);
- ObjEnemyBossScene_Regist(obj);
- while(!Obj_IsDeleted(obj))
- {
- yield;
- }
- CloseScript(GetOwnScriptID());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement