| ~Hakurei Shrine~ > Rika and Nitori's Garage Experiments |
| I'll get you fat pigeon |
| (1/6) > >> |
| JormundElver:
If you were willing to click on this completely random thread, you deserve some completely random scripts (these take so long to translate back into vanilla rumia mode); I also removed the FREE player line from these so you don't need to run them through applocale or something like that, apologies to people who play as rumia: EDIT: Didn't throw in anything terribly complicated because this stuff takes forever to convert, maybe I'll post some cool ones later instead of all this terrible drivel. Fat Pigeon 1 - Standard dumb crap, I turned all the card graphics into arrow things so that makes it even worse. It shoots some terrible tiny laser things and giant yin yang orb things I don't know, and some red and white seeker things. --- Code: ---#TouhouDanmakufu #Title[Fat Pigeon 1] #Text[Test script] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let frame = 0; @Initialize { SetLife(3000); SetTimer(70); SetScore(2000000); SetInvincibility( 60 ); SetMovePosition02(GetCenterX, GetClipMinY + 120, 120); CutIn(YOUMU, "Test Sign "\""Test"\", "", 0, 0, 0, 0); LoadGraphic(ImgBoss); SetTexture(ImgBoss); SetGraphicRect(0, 0, 64, 64); } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); if (frame == 0){ Attack; } frame++; yield; } @DrawLoop { DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task Attack(){ let Length = 0; let BaseX = GetX; let BaseY = GetY; let Angular = rand(0, 360); let angular = 0; let RollerX; let RollerY; let b; let speed; let speedx; let speedy; let argh = 75; loop(150){ yield; } loop{ loop(5){ b = rand(0, 360); ascent(a in 0..40){ CreateShot01(GetX, GetY, 4, b+a*9, RED21, 5); DelayShot(GetX, GetY, 4, b+a*9, RED21, 5); } loop(25){ yield; } } SetMovePositionRandom01(50,20,5,GetClipMinX()+100,70,GetClipMaxX()-100,100); descent(a in 0..50){ ascent(b in 0..4){ loop(3){ CreateLaser01(GetX+rand(-30, 30), GetY+rand(-30, 30), 1+a*0.12, GetAngleToPlayer+b*90, 45, 8, WHITE01, 0); } } loop(2){ yield; } } let zoink = GetAngleToPlayer; loop(45){ loop(3){ RollerX = GetX + Length * cos(Angular); RollerY = GetY + Length * sin(Angular); ascent(a in -1..2){ LargeRoller(RollerX, RollerY, 0, zoink+a*40, BLUE02, 5, argh); } RollerX = GetX - Length * cos(Angular); RollerY = GetY - Length * sin(Angular); ascent(a in -1..2){ LargeRoller(RollerX, RollerY, 0, zoink+a*40, BLUE02, 5, argh); } Angular += 3; if (Length < 75){ Length += 1; } } argh--; yield; } loop(30){ yield; } Length = 0; Angular = rand(0, 360); argh = 75; loop(2){ yield; } angular=180; loop(45){ ascent(a in 1..4){ speed=2+0.75*a; speedx = speed * cos(angular) * 0.4; speedy = speed * sin(angular) * 0.4; CreateShotA(0, GetX, GetY, 0); SetShotDataA_XY(0, 0, speedx, speedy, 0, 0.02, 5, 5, GREEN21); FireShot(0); } angular += 4; loop(2){ yield; } } SetMovePositionRandom01(50,20,5,GetClipMinX()+100,70,GetClipMaxX()-100,100); loop(150){ yield; } } } task DelayShot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); while (!Obj_BeDeleted(obj)){ if (bounce == 30){ Obj_SetSpeed(obj, 0); } if (bounce == 80){ Obj_SetSpeed(obj, 5); ObjShot_SetGraphic(obj, WHITE21); Obj_SetAngle(obj, atan2(GetPlayerY - Obj_GetY(obj), GetPlayerX - Obj_GetX(obj))); } bounce++; yield; } } task LargeRoller(x, y, v, angle, graphic, delay, gotime){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); while (!Obj_BeDeleted(obj)){ if (gotime == 0){ Obj_SetSpeed(obj, 0.5); } gotime--; yield; } } } --- End code --- Fat Pigeon 2 - Even more standard dumb crap. If anyone else is a WoW nerd who's been in Naxxramas then I am going to tell you now that this pattern is not a coincidence, but is in fact based off Grobbulus. Long survival, can get kind of tricky near the end. --- Code: ---#TouhouDanmakufu #Title[Fat Pigeon 2] #Text[Test script] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let frame = 0; let time = 999; let wait = 90; @Initialize { SetLife(3000); SetTimer(130); SetScore(2000000); SetInvincibility( 60 ); SetMovePosition02(GetCenterX, GetClipMinY + 120, 120); CutIn(YOUMU, "Test Sign "\""Test"\", "", 0, 0, 0, 0); LoadGraphic(ImgBoss); SetTexture(ImgBoss); SetGraphicRect(0, 0, 64, 64); SetDurableSpellCard(); } @MainLoop { if (frame == 0){ Mist; } frame++; time = GetTimer; yield; } @DrawLoop { SetAlpha( 120 ); DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task Mist(){ controlbutton; let p = 0; _Wait(200); SetMovePosition02(GetPlayerX, GetPlayerY, 40); _Wait(40); loop{ SetColor(25, 220, 25); Concentration01(wait); SetColor(255, 255, 255); _Wait(wait); GasCloud(GetX, GetY, 0, 0, WHITE01, 0); p = 135; loop(30){ CreateShot01(GetX, GetY, rand(1, 1.5), GetAngleToPlayer+p+rand(-9, 9), GREEN12, rand(5, 20)); p -= 9; yield; } loop(30){ CreateShot01(GetX, GetY, rand(1, 1.5), GetAngleToPlayer+p+rand(-9, 9), GREEN12, rand(5, 20)); p += 9; yield; } _Wait(60); SetMovePosition02(GetPlayerX, GetPlayerY, wait); _Wait(wait); } } task GasCloud(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let a = 0; let b = 0; let r = 0; let n = 0.05; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); Obj_SetAutoDelete(obj, false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (a == 30){ r = rand(0, 360); ascent(z in 0..30){ GasShot(Obj_GetX(obj), Obj_GetY(obj), n, r+z*12, GREEN03, 0); } a = 0; n += 0.05; } if (b == 2100){ Obj_Delete(obj); } b++; a++; yield; } } task GasShot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let a = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAutoDelete(obj, false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (a == 60){ Obj_SetSpeed(obj, 0); ObjShot_FadeDelete(obj); } a++; yield; } } task controlbutton{ let l = 0; loop{ if (l == 0 && time < 90){ wait = 55; l++; } if (l == 1 && time < 60){ wait = 45; l++; } if (l == 2 && time < 45){ wait = 35; l++; } if (l == 3 && time < 30){ wait = 30; l++; } if (l == 4 && time < 15){ wait = 20; l++; } yield; } } function _Wait(let frame){ loop( frame ){ yield; } } } --- End code --- Fat Pigeon 3 - The worst thing, it's some hideous color wheel horror thing. First it shoots this completely meaningless ring of purple bullets which for some unknown reason turn into colorful shots... I dunno! Shots alternate from 0-3.5 in speed, then from 3.5 down to negative 3.5, then rinse repeat. It's as easy as it is colorful. --- Code: ---#TouhouDanmakufu #Title[Fat Pigeon 3] #Text[Test script] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let frame = 0; let Color = [RED12, ORANGE12, YELLOW12, GREEN12, AQUA12, BLUE12, PURPLE12]; @Initialize { SetLife(4000); SetTimer(70); SetScore(2000000); SetInvincibility( 60 ); SetMovePosition02(GetCenterX, GetClipMinY + 120, 60); CutIn(YOUMU, "Test Sign "\""Test"\", "", 0, 0, 0, 0); LoadGraphic(ImgBoss); SetTexture(ImgBoss); SetGraphicRect(0, 0, 64, 64); } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); if (frame == 0){ Phyto; } frame++; yield; } @DrawLoop { DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task Phyto(){ let a = 0; let baney = 0; let c = 0; let q = 0; _Wait(60); _Wait(30); loop{ PlaySE(GetCurrentScriptDirectory~"SFX\Shot1.wav"); ascent(b in 0..10){ SplashShot(GetX, GetY, 4, q+b*36, PURPLE04, 5, a, c); } c++; if (c > 6){ c = 0; } if (baney == 0){ a += 0.08; } else{ a -= 0.08; } if (a > 3.5){ baney=1; } if (a < -3.5){ baney=0; } q += 4.7; _Wait(3); } } task SplashShot(x, y, v, angle, graphic, delay, second, kurt){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); while (!Obj_BeDeleted(obj)){ if (bounce > 20 && Obj_GetSpeed(obj) > 0){ Obj_SetSpeed(obj, Obj_GetSpeed(obj) - 0.1); } if (Obj_GetSpeed(obj) < 0){ Obj_SetSpeed(obj, 0); } if (bounce == 80){ CreateShot01(Obj_GetX(obj), Obj_GetY(obj), second, Obj_GetAngle(obj), Color[kurt], 10); Obj_Delete(obj); } bounce++; yield; } } function _Wait(let frame){ loop( frame ){ yield; } } } --- End code --- They all run, but I might have forgotten to tear some random stuff out of the scripts that make them larger but don't affect anything. |
| Naut:
Ahh, haven't seen the Jormund in a few months. Nice scripts, difficulty is pretty nice as well. FP1 is just lol, random things being fired off... Man, I dunno what to say. It's just... I dunno! Cool, I guess? FP2 was a kick in the balls the first time I played it. Had no idea what the hell was going on.... It's not too difficult after the first play through, but dang, it's scary as ass on attempt number one. FP3 is just kick-ass. Could be more difficult, but I needn't reduce the kick-assness of this spellcard with foolish claims regarding it's pansy-level. Can't wait to see this non-drivel you speak of. |
| JormundElver:
Whew, only one reply so far; thanks Naut. I think the only way to attract more attention to pigeons is by cranking this beast down a notch: Fat Pigeon 4 - Heavily based on PC-98 Alice's purple lasers. There is nothing special or remotely remarkable about this one, one set of laser beams with their mini lasers fire, then the second, repeat. Lasers appear 180 degrees from you and take half a second to swing around at which point they immediately materialize; the only thing this does is look a little cooler I guess and also harder to track where the lasers are going to hit. Pretty easy overall. --- Code: ---#TouhouDanmakufu #Title[Fat Pigeon 4] #Text[Test script] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let frame = 0; @Initialize { SetLife(4000); SetTimer(70); SetScore(2000000); SetInvincibility( 60 ); SetMovePosition02(GetCenterX, GetClipMinY + 120, 60); CutIn(YOUMU, "Test Sign "\""Test"\", "", 0, 0, 0, 0); LoadGraphic(ImgBoss); SetTexture(ImgBoss); SetGraphicRect(0, 0, 64, 64); } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); if (frame == 0){ Ray; } frame++; yield; } @DrawLoop { DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task Ray(){ let t = 0; _Wait(200); loop{ LaserSnap; loop(10){ t = rand(0, 360); ascent(b in 0..28){ CreateLaser01(GetX, GetY, 5, t+b*12.857, 45, 8, PURPLE01, 0); } _Wait(8); } _Wait(40); LaserSnap2; loop(10){ t = rand(0, 360); ascent(b in 0..28){ CreateLaser01(GetX, GetY, 5, t+b*12.857, 45, 8, RED01, 0); } _Wait(8); } _Wait(40); } } task LaserSnap{ let n = 0; loop(40){ if (n%2 == 0){ CreateLaserA(0, GetX, GetY, 600, 15, PURPLE01, 30); SetLaserDataA(0, 0, GetAngleToPlayer+180, 6, 0, 0, 0); SetLaserDataA(0, 30, NULL, 0, 0, 0, 0); SetShotKillTime(0, 80); FireShot(0); } else{ CreateLaserA(0, GetX, GetY, 600, 15, PURPLE01, 30); SetLaserDataA(0, 0, GetAngleToPlayer+180, -6, 0, 0, 0); SetLaserDataA(0, 30, NULL, 0, 0, 0, 0); SetShotKillTime(0, 80); FireShot(0); } n++; _Wait(2); } } task LaserSnap2{ let n = 0; loop(40){ if (n%2 == 0){ CreateLaserA(0, GetX, GetY, 600, 15, RED01, 30); SetLaserDataA(0, 0, GetAngleToPlayer+180, 5.85, 0, 0, 0); SetLaserDataA(0, 30, NULL, 0, 0, 0, 0); SetShotKillTime(0, 80); FireShot(0); } else{ CreateLaserA(0, GetX, GetY, 600, 15, RED01, 30); SetLaserDataA(0, 0, GetAngleToPlayer+180, -5.85, 0, 0, 0); SetLaserDataA(0, 30, NULL, 0, 0, 0, 0); SetShotKillTime(0, 80); FireShot(0); } n++; _Wait(2); } } task ReflectShot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); while (!Obj_BeDeleted(obj)){ if(i == 0){ if (((Obj_GetX(obj) > 410) || (Obj_GetX(obj) < 40))){ Obj_SetAngle(obj, 180 - Obj_GetAngle(obj)); i++; } } if(i == 0){ if (((Obj_GetY(obj) < 25) || (Obj_GetY(obj) < 25))){ Obj_SetAngle(obj, 360 - Obj_GetAngle(obj)); i++; } } yield; } } function _Wait(let frame){ loop( frame ){ yield; } } } --- End code --- Fat Pigeon 5 - Another miserable long survival card, this was the first in a new set I made one day because I didn't like my old survivals being just one phase that continued to get faster (interestingly enough the second was Fat Pigeon 2 which was basically what I was trying to avoid, but that one was fun), and wanted ones that had multiple steps like ZUN does. This one features heavy and awful random number generator luck, which I really didn't want to keep in but eventually we have to indulge our dark side and leave an RNG spellcard here and there. Fireballs are replaced with arrows, I have the most trouble with the first part, although the third part is harder with vanilla graphics as opposed to CtC ones (shots are larger but it's still easily managed). --- Code: ---#TouhouDanmakufu #Title[Fat Pigeon 5] #Text[Test script] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let frame = 0; let time = 100; @Initialize { SetLife(4000); SetTimer(100); SetScore(2000000); SetInvincibility( 60 ); SetMovePosition02(GetCenterX, GetCenterY, 60); CutIn(YOUMU, "Test Sign "\""Test"\", "", 0, 0, 0, 0); LoadGraphic(ImgBoss); SetTexture(ImgBoss); SetGraphicRect(0, 0, 64, 64); } @MainLoop { if (frame == 170){ Burn; } time = GetTimer; frame++; yield; } @DrawLoop { SetAlpha(0); DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task Burn(){ let speedx; let speedy; let speed; let f; let u = 0; loop(700){ if (u == 6){ u = 0; } speed = rand(4, 5); f = rand(260, 280); speedx = speed * cos(f); speedy = speed * sin(f); CreateShotA(0, rand(GetClipMinX+20, GetClipMaxX-20), rand(GetClipMaxY, GetClipMaxY-70), rand(40, 75)); SetShotDataA(0, 0, speed, f, 0, 0, 5, RED21); SetShotDataA_XY(0, 1, speedx, speedy, 0, 0.03, 5, 5, RED21); FireShot(0); Light(rand(GetClipMinX+20, GetClipMaxX-20), rand(GetClipMaxY, GetClipMaxY-70), RED21, rand(40, 75)); _Wait(2); u++; } _Wait(180); loop(60){ Light(rand(GetClipMinX+10, GetClipMaxX-10), rand(GetClipMinY, GetClipMinY+30), RED01, rand(40, 75)); Light(rand(GetClipMinX+10, GetClipMaxX-10), rand(GetClipMinY, GetClipMinY+30), RED01, rand(40, 75)); yield; } loop(500){ if (u == 4){ u = 0; } BurnLeaf(rand(GetClipMinX+10, GetClipMaxX-10), rand(GetClipMinY, GetClipMinY+30), rand(0.4, 1), rand(0, 360), 0); Light(rand(GetClipMinX+10, GetClipMaxX-10), rand(GetClipMinY, GetClipMinY+30), RED01, rand(40, 75)); Light(rand(GetClipMinX+10, GetClipMaxX-10), rand(GetClipMinY, GetClipMinY+30), RED01, rand(40, 75)); _Wait(3); u++; } _Wait(120); loop(60){ Light(rand(GetClipMinX, GetClipMinX+40), rand(GetClipMinY, GetClipMaxY), RED01, rand(40, 75)); Light(rand(GetClipMaxX, GetClipMaxX-40), rand(GetClipMinY, GetClipMaxY), RED01, rand(40, 75)); yield; } SideBurner; loop{ Light(rand(GetClipMinX, GetClipMinX+40), rand(GetClipMinY, GetClipMaxY), RED01, rand(40, 75)); Light(rand(GetClipMaxX, GetClipMaxX-40), rand(GetClipMinY, GetClipMaxY), RED01, rand(40, 75)); _Wait(1); } } task SideBurner{ let q = rand(-5, 5); let z = GetClipMaxY+q; loop{ while(z > GetClipMinY-10){ CreateShot01(GetClipMinX, z, 0.5, 0, RED02, 5); CreateShot01(GetClipMaxX, z-12, 0.5, 180, RED02, 5); z -= 24; } if (time > 20){ _Wait(100); } else{ _Wait(80); } q = rand(-5, 5); z = GetClipMaxY+q; } } task BurnLeaf(x, y, v, angle, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let crap = rand(75, 105); Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, ORANGE11); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 255); let SpeedX = v * cos(crap); let SpeedY = v * sin(crap); let accelerate = 0.15; _GiantLightRed(); while (!Obj_BeDeleted(obj)){ if (bounce == 1){ ObjShot_SetGraphic(obj, GREEN11); } x += SpeedX; y += SpeedY; Obj_SetPosition(obj, x, y); bounce++; yield; SpeedY += accelerate; } task _GiantLightRed{ while( !Obj_BeDeleted( obj ) ){ let _x = Obj_GetX( obj ) + rand( - 20, 20 ); let _y = Obj_GetY( obj ) + rand( - 20, 20 ); Light( _x, _y, ORANGE01, 20 ); loop( 1 ){ yield; } } } } task Light( let x, let y, let graphic, let frame ){ let obj = Obj_Create( OBJ_SHOT ); Obj_SetPosition( obj, x, y ); Obj_SetSpeed( obj, 500 ); Obj_SetAngle( obj, 0 ); ObjShot_SetGraphic( obj, graphic ); ObjShot_SetDelay( obj, frame ); Obj_SetAlpha( obj, 0 ); Obj_SetCollisionToPlayer( obj, false ); ObjShot_SetBombResist( obj, true ); ObjShot_ToItem( obj, false ); } function _Wait(let frame){ loop( frame ){ yield; } } } --- End code --- Fat Pigeon 6 - I honestly forgot this peice of junk existed until like 30 mins ago when I stumbled upon it. What sweeter revenge then to release this abomination upon the world, I thought. It took forever to convert over, but it was worth it to make everyone else suffer through it. The difficulty is over-scaled, I never bothered to really balance it, I made it one late night after a long and miserable workday. Features an explosive entrance, health regeneration, and an internal timer during phase 2. If you kill the boss to slowly during the second round then the time between the attacks quickly diminish and you will inevitably die. Enjoy! --- Code: ---#TouhouDanmakufu #Title[Fat Pigeon 6] #Text[Test script] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let frame = 0; let aftershock=0; let move = -70; let permareveal = 0; let reveal = 0; let phase = 0; let waiting = 260; let firstwait = 0; @Initialize { SetLife(650); SetDamageRate(10, 0); SetTimer(999); SetInvincibility( 470 ); LoadGraphic(ImgBoss); SetTexture(ImgBoss); SetGraphicRect(0, 0, 64, 64); Startup; } @MainLoop { if (reveal == 1){ SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); } if (move == 200){ SetMovePositionRandom01(50,20,5,GetClipMinX()+100,70,GetClipMaxX()-100,100); move=0; } if (frame == 300){ SpinOut; Checker; } if (reveal == 1){ frame++; move++; } frame++; yield; } @DrawLoop { if (reveal == 1){ SetAlpha( 255 ); } else{ SetAlpha(0); } DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task Startup(){ SetMovePosition02(GetCenterX, GetClipMinY + 120, 1); _Wait(80); LightRay(GetCenterX, GetClipMaxY, 21, 0, WHITE01, 0, 5,270); LightRay(GetCenterX, GetClipMaxY, 21, 180, WHITE01, 0, 5,270); LightRay(GetCenterX, GetClipMaxY, 18, 0, WHITE01, 0, 3,270); LightRay(GetCenterX, GetClipMaxY, 18, 180, WHITE01, 0, 3,270); _Wait(560); CurtainBlast(GetCenterX, GetClipMinY, 0, 0, WHITE01, 0); _Wait(600); Concentration01(300); _Wait(300); ascent(v in 0..60){ ascent(i in 0..60){ CreateShot01(GetX, GetY, 0.2+i*0.125, GetAngleToPlayer+v*6, WHITE22, 0); } } reveal=1; permareveal=1; firstwait = 1; CutIn(YOUMU, "Test Sign"\""Test"\", "", 0, 0, 0, 0); SetScore(21000); } task Checker(){ let q = 0; loop{ if (q == 0){ if (GetEnemyLife < 150){ q++; Concentration01(120); _Wait(120); reveal = 0; _Wait(300); LightRay(GetCenterX, GetClipMaxY, 21, 0, WHITE01, 0, 5,270); LightRay(GetCenterX, GetClipMaxY, 21, 180, WHITE01, 0, 5,270); LightRay(GetCenterX, GetClipMaxY, 18, 0, WHITE01, 0, 3,270); LightRay(GetCenterX, GetClipMaxY, 18, 180, WHITE01, 0, 3,270); _Wait(560); LightRay(GetCenterX, GetClipMinY+5, 21, 0, WHITE01, 0, 5,90); LightRay(GetCenterX, GetClipMinY+5, 21, 180, WHITE01, 0, 5,90); LightRay(GetCenterX, GetClipMinY+5, 18, 0, WHITE01, 0, 3,90); LightRay(GetCenterX, GetClipMinY+5, 18, 180, WHITE01, 0, 3,90); _Wait(560); LightRay(GetCenterX, GetClipMinY+5, 21, 0, WHITE01, 0, 5,90); LightRay(GetCenterX, GetClipMinY+5, 21, 180, WHITE01, 0, 5,90); LightRay(GetCenterX, GetClipMaxY, 18, 0, WHITE01, 0, 3,270); LightRay(GetCenterX, GetClipMaxY, 18, 180, WHITE01, 0, 3,270); _Wait(620); let liferegen = 650 - GetEnemyLife; Concentration01(liferegen + 60); loop(liferegen){ AddLife(1); yield; } _Wait(60); reveal=1; aftershock=1; ascent(v in 0..60){ ascent(i in 0..60){ CreateShot01(GetX, GetY, 0.2+i*0.125, GetAngleToPlayer+v*6, WHITE22, 0); } } } } yield; } } task SpinOut(){ let a; let b = 0; let chooser; loop{ if (firstwait == 1){ _Wait(300); firstwait++; } if (aftershock==2){ if (waiting > 19){ waiting -= 10; } } if (aftershock==1){ _Wait(300); aftershock++; } if (reveal == 1){ chooser=rand_int(0, 6); alternative(chooser) case(0){ BowlerShot(GetX, GetY, 0, 0, WHITE01, 0); } case(1){ ascent(a in 0..3){ SpindleShot(GetX, GetY, 0, 120+a*120, WHITE01, 0); } } case(2){ RevolvoBlast; } case(3){ SpinBlast; } case(4){ WhirlKill(GetX, GetY, 0, 0, WHITE01, 0); WhirlKill(GetX, GetY, 0, 180, WHITE01, 0); } case(5){ SpinShooter(GetX, GetY, 0, 210, WHITE01, 0, 45, 35); SpinShooter(GetX, GetY, 0, 330, WHITE01, 0, 135, -35); } case(6){ ascent(a in 0..3){ RingShot(GetX, GetY, 0, 120+a*120, WHITE01, 0); } } _Wait(waiting); } else{ _Wait(1); } } } task SpinBlast(){ let a; loop(2){ a = rand(170,190); SpinShot(GetX, GetY, 4, a, RED22, 0, 0); SpinShot(GetX, GetY, 4, a-180, RED22, 0, 0); _Wait(90); } } task RevolvoBlast(){ let b=GetAngleToPlayer; b=GetAngleToPlayer; loop(90){ ascent(a in -2..3){ CreateShot01(GetX, GetY, 2.5, b+a*15, BLUE22, 7); } b += 20; _Wait(2); } } task CurtainBlast(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let v; let o = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); Obj_SetCollisionToPlayer(obj,false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (bounce == 35){ ascent(v in 0..25){ SetShotColor(0, 0, 0); CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 0.7, v*14.4-o, WHITE01, 0); CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 0.7, v*14.4+o, WHITE01, 0); SetShotColor(255, 255, 255); } o++; bounce=0; } if (((Obj_GetX(obj) > 410) || (Obj_GetX(obj) < 40))){ Obj_SetAngle(obj, 180 - Obj_GetAngle(obj)); } bounce++; yield; } } task LightRay(x, y, v, angle, graphic, delay, let stall, let angle2){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); Obj_SetCollisionToPlayer(obj,false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (bounce == stall){ CreateLaser01(Obj_GetX(obj), Obj_GetY(obj), 4, angle2, 150, 10, WHITE01, 0); bounce=0; } if (((Obj_GetX(obj) > 410) || (Obj_GetX(obj) < 40))){ Obj_SetAngle(obj, 180 - Obj_GetAngle(obj)); } if (i == 440){ Obj_Delete(obj); } i++; bounce++; yield; } } task BowlerShot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; let RollerY=0; let RollerX=0; let BaseX; let BaseY; let t = 0; let CAngle = angle; let Length = 30; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); ObjShot_SetBombResist(obj, true); Obj_SetAutoDelete(obj, false); while (!Obj_BeDeleted(obj)){ if (t >= 90){ Obj_Delete(obj); } BaseX = GetX; BaseY = GetY; CAngle = CAngle + 10; Length = 90-t; RollerX = BaseX + Length * cos(CAngle); RollerY = BaseY + Length * sin(CAngle); Obj_SetPosition(obj, RollerX, RollerY); CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 0.5+t*0.05, GetAngleToPlayer, GREEN22, 14); t += 0.5; yield; } } task SpinShooter(x, y, v, angle, graphic, delay, let n, let k){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; let RollerY=0; let RollerX=0; let BaseX; let BaseY; let t = 0; let CAngle = angle; let Length = 30; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); ObjShot_SetBombResist(obj, true); Obj_SetAutoDelete(obj, false); while (!Obj_BeDeleted(obj)){ if (t >= 180){ Obj_Delete(obj); } BaseX = GetX; BaseY = GetY; Length = 50; RollerX = BaseX + Length * cos(CAngle); RollerY = BaseY + Length * sin(CAngle); Obj_SetPosition(obj, RollerX, RollerY); if (bounce == 3){ ascent(i in 0..9){ CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 1+i*0.4, n, ORANGE22, 14); } n += k; bounce=0; } bounce++; t++; yield; } } task SpindleShot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; let RollerY=0; let RollerX=0; let BaseX; let BaseY; let t = 0; let CAngle = angle; let Length = 30; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); ObjShot_SetBombResist(obj, true); Obj_SetAutoDelete(obj, false); while (!Obj_BeDeleted(obj)){ if (i >= 180){ Obj_Delete(obj); } BaseX = GetX; BaseY = GetY; CAngle = CAngle + 5; Length = 120; RollerX = BaseX + Length * cos(CAngle); RollerY = BaseY + Length * sin(CAngle); Obj_SetPosition(obj, RollerX, RollerY); if (t == 4){ CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 2, atan2(Obj_GetY(obj)-GetY, Obj_GetX(obj)-GetX)-90, PURPLE22, 22); CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 2, atan2(Obj_GetY(obj)-GetY, Obj_GetX(obj)-GetX)-0, PURPLE22, 22); CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 2, atan2(Obj_GetY(obj)-GetY, Obj_GetX(obj)-GetX)-180, PURPLE22, 22); t=0; } i++; t++; yield; } } task RingShot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; let RollerY=0; let RollerX=0; let BaseX; let BaseY; let t = 0; let q; let CAngle = angle; let Length = 30; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0); ObjShot_SetBombResist(obj, true); Obj_SetAutoDelete(obj, false); while (!Obj_BeDeleted(obj)){ if (i >= 180){ Obj_Delete(obj); } BaseX = GetX; BaseY = GetY; CAngle = CAngle + 10; Length = 80; RollerX = BaseX + Length * cos(CAngle); RollerY = BaseY + Length * sin(CAngle); Obj_SetPosition(obj, RollerX, RollerY); if (t == 20){ ascent(q in 0..16){ CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 1.8, 0+q*22.5, AQUA22, 15); } t=0; } i++; t++; yield; } } task SpinShot(x, y, v, angle, graphic, delay, alpha){ let obj = Obj_Create(OBJ_SHOT); let bounce = 0; let i = 0; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, alpha); Obj_SetCollisionToPlayer(obj,false); while (!Obj_BeDeleted(obj)){ if (bounce == 1){ CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 2, 0+i*34, RED22, 15); CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 2, 180+i*34, RED22, 15); i++; bounce=0; } bounce++; yield; } } task WhirlKill(x, y, v, angle, graphic, delay){ let n = 0; let RollerY2=0; let RollerX2=0; let BaseX2; let BaseY2; let Angler2 = angle; let Length2 = 90; let obj2 = Obj_Create(OBJ_SHOT); Obj_SetX(obj2, x); Obj_SetY(obj2, y); Obj_SetSpeed(obj2, v); Obj_SetAngle(obj2, angle); ObjShot_SetGraphic(obj2, graphic); ObjShot_SetDelay(obj2, delay); Obj_SetAlpha( obj2, 0 ); Obj_SetAutoDelete(obj2, false); Obj_SetCollisionToPlayer( obj2, false ); let obj = Obj_Create(OBJ_SHOT); let RollerY=0; let RollerX=0; let BaseX; let BaseY; let Angler = angle; let Length = 30; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAlpha(obj, 0 ); Obj_SetAutoDelete(obj, false); while (!Obj_BeDeleted(obj)){ BaseX = Obj_GetX(obj2); BaseY = Obj_GetY(obj2); Angler = Angler + 19; Length = 30; RollerX = BaseX + Length * cos(Angler); RollerY = BaseY + Length * sin(Angler); BaseX2 = GetX; BaseY2 = GetY; Angler2 = Angler2 + 3; Length2 = 90; RollerX2 = BaseX2 + Length2 * cos(Angler2); RollerY2 = BaseY2 + Length2 * sin(Angler2); Obj_SetPosition(obj2, RollerX2, RollerY2); Obj_SetPosition(obj, RollerX, RollerY); if (n > 1){ CreateShot01(Obj_GetX(obj), Obj_GetY(obj), 2, atan2(GetPlayerY-Obj_GetY(obj2), GetPlayerX-Obj_GetX(obj2)), YELLOW22, 15); } if (n == 180){ Obj_Delete(obj2); Obj_Delete(obj); } n++; yield; } } function _Wait(let frame){ loop( frame ){ yield; } } } --- End code --- |
| Suikama:
These are fat. too fat. 1 is too fat because of those fat balls of fat traping you with those fat lasers 2 is too fat because of the randomness of the green fat 3 is too fat because you have to fit through a tiny hole through fast bullets but you're too fat to do so 4 is too fat because that laser is just plain fat 5 is too fat 6 is fat fat fat This post is fat But honestly some of these are pretty cool. Tons of cheap shots everywhere though :V |
| JormundElver:
Agreed, but I will get that fat pigeon some day. EDIT: Waaaaaaait a second... #2 is barely random at all, just one step up from being fixed really. |
| Navigation |
| Message Index |
| Next page |