let bSpell = false; let current = GetCurrentScriptDirectory(); @Initialize{ CallBG; Difficulty; } @MainLoop{ let objScene = GetEnemyBossSceneObjectID(); if(objScene != ID_INVALID && ObjEnemyBossScene_GetInfo(objScene, INFO_IS_SPELL)){ bSpell = true; }else{ bSpell = false; } yield; } task CallBG{//MIPLOUF while(!Obj_IsDeleted( GetEnemyBossSceneObjectID() ) ){//CURRENTLY calls duplicate tasks at start of each attack if(bSpell==false){ //if(GetCommonData("StgBkgd",1)==2){TNormalBackground(2);} //else{TNormalBackground(1);}//Default is 1. Can call 2 for sunset. TNormalBackground(1);//Since the commondata is screwing up } while(bSpell==false){ yield; } if(bSpell==true){//Use Common Data to determine which spell background to use if there are multiple spells TSpellBackground; } while(bSpell==true){ yield; } yield; } } task Difficulty{ let imgdiff = GetCurrentScriptDirectory~"./system/img/Diff.png"; let diffindex = GetCommonData("Difficulty", -1); //0 VE, 1 E, 2 N, 3 H, 4 L, 5 OD, 6 Ex, 7 Ph, 8 LW let objDiff = ObjPrim_Create(OBJ_SPRITE_2D); ObjRender_SetPosition(objDiff, GetStgFrameWidth+148, 30, 1); ObjPrim_SetPrimitiveType(objDiff, PRIMITIVE_TRIANGLESTRIP); ObjRender_SetBlendType(objDiff, BLEND_ALPHA); Obj_SetRenderPriority(objDiff, 0.85); ObjPrim_SetTexture(objDiff, imgdiff); ObjRender_SetAlpha(objDiff, 255); ObjSprite2D_SetSourceRect(objDiff, 26, 13+16*diffindex, 121, 29+16*diffindex); ObjSprite2D_SetDestCenter(objDiff); while(!Obj_IsDeleted(objDiff)){ diffindex = GetCommonData("Difficulty", -1); ObjSprite2D_SetSourceRect(objDiff, 26, 13+16*diffindex, 121, 29+16*diffindex); yield; } } task TNormalBackground(arg){ let path1 = GetCurrentScriptDirectory ~ "bkgd/S1a.png"; let path2 = GetCurrentScriptDirectory ~ "bkgd/Gradient2.png"; let path3 = GetCurrentScriptDirectory ~ "bkgd/Gradient.png"; SetCameraFocusX(0); SetCameraFocusY(0); SetCameraFocusZ(100); SetCameraRadius(300); SetCameraElevationAngle(320); SetCameraAzimuthAngle(90); let deltay = 256; let ypos = 0; let obj1 = ObjPrim_Create(OBJ_SPRITE_3D);//Clouds ObjRender_SetBlendType(obj1, BLEND_ALPHA); Obj_SetRenderPriority(obj1, 0.20); ObjPrim_SetTexture(obj1, path1); ObjSprite3D_SetSourceRect(obj1, 0, ypos, deltay*9, ypos+deltay*9);//Lol idk what this will do ObjSprite3D_SetDestRect(obj1, -deltay*3, -deltay*3, deltay*3, deltay*3); let obj2 = ObjPrim_Create(OBJ_SPRITE_2D); //gradient red ObjRender_SetBlendType(obj2, BLEND_ALPHA); Obj_SetRenderPriority(obj2, 0.21); ObjPrim_SetTexture(obj2, path2); ObjRender_SetAngleXYZ(obj2, 0, 0, 0); ObjSprite2D_SetSourceRect(obj2, 0, 0, 512, 512); ObjSprite2D_SetDestRect(obj2, 0, 0, 512, 472); ObjRender_SetColor(obj2, 250, 100, 0); //Reddish. let obj3 = ObjPrim_Create(OBJ_SPRITE_2D); //gradient blue ObjRender_SetBlendType(obj3, BLEND_ALPHA); Obj_SetRenderPriority(obj3, 0.21); ObjPrim_SetTexture(obj3, path3); ObjSprite2D_SetSourceRect(obj3, 0, 0, 512, 512); ObjSprite2D_SetDestRect(obj3, 0, 0, 512, 472); ObjRender_SetColor(obj3, 0, 150, 250); //Bluish. let obj4; let obj5; if(arg==2){//If argument is 2. Pass on this argument if sunset bullets are needed obj4 = ObjPrim_Create(OBJ_SPRITE_2D); //gradient red ObjRender_SetBlendType(obj4, BLEND_ALPHA); Obj_SetRenderPriority(obj4, 0.21); ObjPrim_SetTexture(obj4, path2); ObjRender_SetAngleXYZ(obj4, 0, 0, 0); ObjSprite2D_SetSourceRect(obj4, 0, 0, 512, 512); ObjSprite2D_SetDestRect(obj4, 0, 0, 512, 472); ObjRender_SetColor(obj4, 250, 100, 0); //Reddish. obj5 = ObjPrim_Create(OBJ_SPRITE_2D); //gradient blue ObjRender_SetBlendType(obj5, BLEND_ALPHA); Obj_SetRenderPriority(obj5, 0.21); ObjPrim_SetTexture(obj5, path3); ObjSprite2D_SetSourceRect(obj5, 0, 0, 512, 512); ObjSprite2D_SetDestRect(obj5, 0, 0, 512, 472); ObjRender_SetColor(obj5, 0, 150, 250); //Bluish. } let frameInvisible = 0; loop{ if(bSpell){ //TRANSITION TO SPELL BACKGROUND. VERY IMPORTANT frameInvisible++; if(frameInvisible >= 60){//Transition to spell Obj_SetVisible(obj1, false);//These lines are useless since I delete the objects Obj_SetVisible(obj2, false); Obj_SetVisible(obj3, false); if(arg==2){ Obj_SetVisible(obj4, false); Obj_SetVisible(obj5, false); } Obj_Delete(obj1); Obj_Delete(obj2); Obj_Delete(obj3); if(arg==2){ Obj_Delete(obj4); Obj_Delete(obj5); } break; //EXPERIMENTAL CODE. Works } }else{ frameInvisible = 0; Obj_SetVisible(obj1, true); Obj_SetVisible(obj2, true); Obj_SetVisible(obj3, true); if(arg==2){ Obj_SetVisible(obj4, true); Obj_SetVisible(obj5, true); } } //Insert 3D Magic for clouds here. ObjSprite3D_SetSourceRect(obj1, 0, ypos, deltay*9, ypos+deltay*9);//Lol idk what this will do ypos++; if(ypos>256){ypos = 0;} yield; } } task TSpellBackground{ let path1 = GetCurrentScriptDirectory ~ "bkgd/spbkgd1.png"; let path2 = GetCurrentScriptDirectory ~ "bkgd/fog.png"; let path3 = GetCurrentScriptDirectory ~ "bkgd/fog.png"; let obj1 = ObjPrim_Create(OBJ_SPRITE_2D); ObjRender_SetBlendType(obj1, BLEND_ALPHA); Obj_SetRenderPriority(obj1, 0.21); ObjPrim_SetTexture(obj1, path1); ObjSprite2D_SetSourceRect(obj1, 0, 0, 384, 448); ObjSprite2D_SetDestRect(obj1, 0, 0, 384, 448); let obj2 = ObjPrim_Create(OBJ_SPRITE_2D); ObjRender_SetBlendType(obj2, BLEND_ALPHA); Obj_SetRenderPriority(obj2, 0.21); ObjPrim_SetTexture(obj2, path2); ObjSprite2D_SetSourceRect(obj2, 0, 0, 512*2, 512*8); ObjSprite2D_SetDestCenter(obj2); let obj3 = ObjPrim_Create(OBJ_SPRITE_2D); ObjRender_SetBlendType(obj3, BLEND_ALPHA); Obj_SetRenderPriority(obj3, 0.21); ObjPrim_SetTexture(obj3, path2); ObjSprite2D_SetSourceRect(obj3, 0, 0, 512*2, 512*4); ObjSprite2D_SetDestCenter(obj3); let frame = 0; let alpha = 0; loop{ if(bSpell){//Transition from stage background alpha = 255; }else{ alpha = 0;//If no longer spell Obj_Delete(obj1); Obj_Delete(obj2); Obj_Delete(obj3); break; //EXPERIMENTAL CODE. Kill the task } ObjRender_SetAlpha(obj1, 255); Obj_SetVisible(obj1, alpha > 0); ObjRender_SetColor(obj1, 255, 255, 255); Obj_SetVisible(obj2, alpha > 0); ObjRender_SetAlpha(obj2, 200); ObjRender_SetColor(obj2, 50, 150, 150); //Blue. Rapid fall down ObjSprite2D_SetSourceRect(obj2, 0, 0-(frame*8)%4096, 512*2, 512*8-(frame*8)%4096); Obj_SetVisible(obj3, alpha > 0); ObjRender_SetAlpha(obj3, 200); ObjRender_SetColor(obj3, 150, 100, 50); //Orange. Slow climb up ObjSprite2D_SetSourceRect(obj3, 0, 0+(frame*2)%1024, 512*2, 512*4+(frame*2)%1024); frame++; yield; } }