| ~Hakurei Shrine~ > Rika and Nitori's Garage Experiments |
| I'll get you fat pigeon |
| << < (2/6) > >> |
| Suikama:
Sometimes the green spray all fires at me and sometimes nothing does :V |
| JormundElver:
Yeah it can do that, what it's doing is firing a line of shots left right right left, but then it puts a small randomization in speed and the distance between the shots so it isn't the same line... so shots can get clustered in one direction, but if that happens there would be big gaps around them, it all balances out, like the universe, and pizza. |
| Iryan:
Fat Pigeon 1: The different... phases seem somewhat unrelated. Still, the card is fun. Fat Pigeon 2: Does a good job at imitating Grobbulus. It has two major problems, however. First, if you die while you are kiting the boss along the top of the screen, your character respawns at the bottom, causing the next cloud to be spawned at the bottom, pretty much ensuring severe impossible wallness. Second, the card is... way too long. 2/3 of the time would totally suffice to force the player to use the tactic. The way it is now, it gets quite tedious. Fat Pigeon 3: Nice little pattern. Nothing too special, but not bad. Reminds me of Tatara. Fat Pigeon 4: Yeah, the first time you play this card, you'll die. If you are not moving by the time the attack visibly starts, you get instagibd. Even the original attack hat more time. Nice twist on the attack, though. Problem: When the laser shots hate you, you can't move out of the laser cage fast enough to not get fried by the purple lasers... Fat Pigeon 5: First part is... I don't know. You can pretty much sit in a lower corner and move slightly to left or right when some bullets fall down where you are. Second part, well... HOLY COW THIS IS AWESOME! Well, maybe not gameplaywise, but it sure is supreme eye-candy. Third part gets claustrophobic near the end, and it becomes hard to make out where the character actually is if all the bullet sprites overlap like that... Fat Pigeon 6: Wow. d(O.o)b I've tried myself to make attacks with alternating patterns. Mine are fail. Yours are win. ...BUT the part that comes when the enemies life is low, with lasers coming from the top and the bottom while the black pattern continues... is... not... a pleasure... really. |
| JormundElver:
Pigeon 1 was a like a Reimu spellcard, lasers were my imitation of needles, the little arrow shots were supposed to be the card shots but the standard spriteset lacked them so it looks weird, giant orbs are yin-yangs :) . Agree with 2, lasts forever... I should probably make it so if the player has invincibility that the boss stays still instead of moving so it wont run down when you die. I dunno what to do with 4, sometimes I can sit down and dominate it for a while, other times vice versa... I was thinking about just making the mini-lasers just firing off in a spiral sense instead of random rings. 5 is odd because I always had the most trouble with the first part, and the third and second I almost always live through... I didn't think about the very bottom though :P . 6 is just cruelly insane, like 90% of the garbage I have. I'll post 3 more a little later I hope... |
| Iryan:
Hmm, I still have a script lying around which you posted on the old board once. A medley of the extra bosses' final attacks. It thought it was actually quite fun and awesome. --- Code: ---#TouhouDanmakufu #Title[Hourai Border of Mishaguji-QED] #Text[Ripples are delicious in any setting. (I still stink at names)] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let count1=0; let life = 600; let crap = 260; let time = 140; let l = 0; let reqmaxX = GetClipMaxX; let reqminX = GetClipMinY; let reqmaxY = GetClipMaxY; let reqminY = GetClipMinY; let kee = 0; @Initialize { SetLife(800); SetDamageRate(10, 0); SetScore(210000); SetTimer(130); SetInvincibility( 200 ); LoadGraphic(ImgBoss); CutIn(YOUMU, ""\""Hourai Border of Mishaguji-QED"\", "", 0, 0, 0, 0); SetMovePosition02(GetCenterX, GetClipMinY + 120, 120); SetGraphicRect(0, 0, 64, 64); } @MainLoop { if (!OnBomb) { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); } if (count1 == 150){ kill; tracers; controller; } count1++; time = GetTimer; life = GetEnemyLife; yield; } @DrawLoop { if (!OnBomb) { SetTexture(ImgBoss); SetGraphicAngle(0, 0, 0); SetGraphicRect(0, 0, 64, 64); SetGraphicScale(1, 1); DrawGraphic(GetX, GetY); } } @Finalize { DeleteGraphic(ImgBoss); } @BackGround{ SetTexture(GetCurrentScriptDirectory~"img\blackbackgroundlol.png"); SetGraphicRect( 0, 0, 512, 512 ); SetGraphicScale(1, 1); SetAlpha(255); DrawGraphic(GetCenterX, GetCenterY); } task controller(){ loop{ if (l == 0){ if (life < 650){ crap = 200; l++; } } if (l == 1){ if (life < 500){ crap = 140; l++; } } if (l == 2){ if (life < 350){ crap = 100; l++; } } if (time < 20){ if (l != 20){ l = 20; crap = 100; aimedbutterflies; } } yield; } } task aimedbutterflies(){ loop{ CreateShot01(GetX, GetY, 3, GetAngleToPlayer, PURPLE22, 5); _Wait(30); } } task kill(){ let x; let y; let a; loop{ x = rand(GetClipMinX + 100, GetClipMaxX - 100); y = rand(GetClipMinY + 80, GetClipMinY + 160); ascent(a in 0..45){ Slowbie(x, y, 1, 0+a*8, GREEN12, 5, -2); Slowbie(x, y, 1, 4+a*8, BLUE12, 5, 2); } _Wait(crap); } } task tracers(){ Tracer(GetClipMinX+1, GetClipMinY+1, 3, 90, BLUE02, 0); Tracer(GetClipMaxX-1, GetClipMaxY-1, 3, 270, RED02, 0); } task Slowbie(x, y, v, angle, graphic, delay, let turn){ 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 == 0){ if ((Obj_GetX(obj) > 420) || (Obj_GetX(obj) < 30)){ Obj_SetAngle(obj, 180 - Obj_GetAngle(obj)); bounce++; } if (Obj_GetY(obj) < 15){ Obj_SetAngle(obj, 360 - Obj_GetAngle(obj)); bounce++; } } if ((i > 40) && (i < 85)){ Obj_SetAngle(obj, Obj_GetAngle(obj)+turn); } i++; yield; } } task Tracer(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let i = 0; let alternate = 0; let ignore1 = 0; let ignore2 = 0; let ignore3 = 0; let ignore4 = 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); Obj_SetCollisionToPlayer(obj,false); while (!Obj_BeDeleted(obj)){ if (ignore1 == 0){ if (Obj_GetX(obj) > reqmaxX){ Obj_SetAngle(obj, Obj_GetAngle(obj)-90); Obj_SetX(obj, reqmaxX-1); if (kee < 14){ reqmaxX = reqmaxX-10; } ignore1++; ignore2=0; kee++; } } if (ignore2 == 0){ if (Obj_GetX(obj) < reqminX){ Obj_SetAngle(obj, Obj_GetAngle(obj)-90); Obj_SetX(obj, reqminX+1); if (kee < 14){ reqminX = reqminX+10; } ignore2++; ignore1=0; } } if (ignore3 == 0){ if (Obj_GetY(obj) > reqmaxY){ Obj_SetAngle(obj, Obj_GetAngle(obj)-90); Obj_SetY(obj, reqmaxY-1); if (kee < 14){ reqmaxY = reqmaxY-10; } ignore3++; ignore4=0; } } if (ignore4 == 0){ if (Obj_GetY(obj) < reqminY){ Obj_SetAngle(obj, Obj_GetAngle(obj)-90); Obj_SetY(obj, reqminY+1); if (kee < 14){ reqminY = reqminY+10; } ignore4++; ignore3=0; } } if (kee < 15){ if (i == 15){ if (alternate == 0){ Permashot(Obj_GetX(obj), Obj_GetY(obj), 0, 0, RED01, 7); alternate++; i = 0; } else{ Permashot(Obj_GetX(obj), Obj_GetY(obj), 0, 0, BLUE01, 7); alternate=0; i = 0; } } } i++; yield; } } task Permashot(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); 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)){ yield; } } function _Wait( let frame ){ loop( frame ){ yield; } } } --- End code --- On another note, making a signature pic of your selfmade danmaku is awesome, too. ;D |
| Navigation |
| Message Index |
| Next page |
| Previous page |