| ~Hakurei Shrine~ > Rika and Nitori's Garage Experiments |
| If China was an Extra boss, this would be her Final Spell. |
| << < (2/2) |
| Naut:
Don't listen to Drake's wussy statements. The spellcard is awesome! To OnTheNet -- delete "LoadUserShotData" in @Initialize and it should work correctly. |
| KomeijiKoishi:
I know, I know, but I have to agree that this version is REALLY a little bit too hard. A "playable" version that I could capture with a hittable character here: --- Code: ---#TouhouDanmakufu #Title[Nightmare "Boundary of Wave and Particle"] #Text[THIS - IS - BULLET HELL!] #Player[FREE] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let count = -70; let fire = 0; @Initialize { SetLife(3000); SetDamageRate(20, 0); SetTimer(180); SetScore(1000000); SetInvincibility( 200 ); LoadGraphic(ImgBoss); LoadUserShotData("\script\extrabosses_mcxd\images\shot_All.txt"); SetMovePosition02(GetCenterX, GetCenterY-120, 120); CutIn(YOUMU, "Chi-Eiki "\""Rainbow Reflection"\", "", 0, 0, 0, 0); SetGraphicRect(0, 0, 64, 64); } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); if ((count == 100)){ particle; } count++; yield; } @DrawLoop { SetTexture(ImgBoss); DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task particle{ let b = 0; let bup = 7.3; let reverse = 0; let lrar = 0; let kput = 1; let krar = 72; let Length = 0; let n = 0; let q = 0; let RollerX; let RollerY; loop{ PlaySE(GetCurrentScriptDirectory~"SFX\Shot1.wav"); ascent(a in 0..kput){ RollerX = GetX + Length * cos((180+a*krar+b)+1*(360/2)); RollerY = GetY + Length * sin((180+a*krar+b)+1*(360/2)); Reflection(RollerX, RollerY, 0.7, (360+a*krar+b), 49, 8); if (GetLife<2625 || GetTimer<140){ Reflection(RollerX, RollerY, 0.8, (360+a*krar+b)+45, 50, 8);} if (GetLife<2250 || GetTimer<120){ Reflection(RollerX, RollerY, 0.9, (360+a*krar+b)+90, 51, 8);} if (GetLife<1875 || GetTimer<100){ Reflection(RollerX, RollerY, 1, (360+a*krar+b)+135, 52, 8);} if (GetLife<1500 || GetTimer<80){ Reflection(RollerX, RollerY, 1.1, (360+a*krar+b)+180, 53, 8);} if (GetLife<1125 || GetTimer<60){ Reflection(RollerX, RollerY, 1.2, (360+a*krar+b)+225, 54, 8);} if (GetLife<750 || GetTimer<40){ Reflection(RollerX, RollerY, 1.3, (360+a*krar+b)+270, 55, 8);} if (GetLife<375 || GetTimer<20){ Reflection(RollerX, RollerY, 1.4, (360+a*krar+b)+315, 56, 8);} } if (reverse == 0){ if (bup < 0){ bup += 0; } else{ reverse++; } } else{ if (bup > -0){ bup -= 0; } else{ reverse--; } } b += bup; if (Length > 0){ Length -= 0; } loop(5){ yield; } } } task Reflection(x, y, spe, dir, graph, delay){ let obj = Obj_Create(OBJ_SHOT); let b = 0; Obj_SetPosition (obj, x, y); Obj_SetSpeed (obj, spe); Obj_SetAngle (obj, dir); ObjShot_SetGraphic(obj, graph); ObjShot_SetDelay (obj, delay); while(! Obj_BeDeleted(obj)) { if (Obj_GetX(obj)<GetClipMinX && b==0) {Obj_SetAngle(obj, -dir+180); b=1;} if (Obj_GetX(obj)>GetClipMaxX && b==0) {Obj_SetAngle(obj, -dir+180); b=1;} if (Obj_GetY(obj)<GetClipMinY && b==0) {Obj_SetAngle(obj, -dir); b=1;} yield; } } } --- End code --- |
| Navigation |
| Message Index |
| Previous page |