[code#TouhouDanmakufu
#Title[Citrus Sign "100% Vitamin C"]
#Text[Always start off your mornings with a nice healthy glass of danmaku!]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let frame = 0;
let addon = 0;
@Initialize {
// Standard Initialize stuff
LoadGraphic(image);
shotinit;
SetLife(750);
SetDamageRate(5, 1);
SetEnemyMarker(true);
SetTimer(4500);
SetX(GetCenterX);
SetY(GetCenterY/2);
SetScore(50000);
SetTexture(image);
SetGraphicRect(0, 0, 64, 69);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
if(frame==240){
// Charging Effect
SetColor(255, 128, 0);
Concentration01(120);
SetColor(255, 255, 255);
}
if(frame==360){
addon += 4;
// Ring of 30 Orange Shots
ascent(a in 0..8){
// Set the first shots up
CreateShotA(1, GetX, GetY, 0);
SetShotKillTime(1, 61);
// Loop of second series of shots
ascent(b in 0..8){
// Second shot setup
CreateShotA(2, 0, 0, 0);
SetShotKillTime(2, 61);
// Loop for the third series of shots
ascent(c in 0..8){
// Third Shot set-up
CreateShotA(3, 0, 0, 0);
// Giving instructions for the third shot
SetShotDataA(3, 0, 0.8, c*45, 0.5, 0, 3, ORANGE05);
SetShotDataA(3, 60, NULL, NULL+10, 0, 0.025, 3, ORANGE05);
SetShotDataA(3, 120, NULL, NULL, c, -0.025, -2, ORANGE05);
SetShotDataA(3, 240, NULL, c*45, 0, 0.0025, 2, ORANGE05);
// Telling the 3rd shot to fire at frame 120 of the 2nd shot's lifespan.
AddShot(60, 2, 3, 0);
}
// Giving instructions for the 2nd shot
SetShotDataA(2, 0, 0.8, b*45, 2, 0.025, 2, ORANGE01);
// Telling the 2nd shot to fire at frame 210 of the 1st shot's lifespan.
AddShot(60, 1, 2, 0);
}
// 1st shots are being given instructions
SetShotDataA(1, 0, 1, a*45, 0, 0, 2, ORANGE02);
// Fire the shots off
FireShot(1);
// Reset the counter
frame = 0;
}
}
frame++;
}
@DrawLoop {
DrawGraphic(GetX, GetY);
// Debug Information(Hold down "C" to display)
while(GetKeyState(VK_USER)==KEY_HOLD){
// Frames per Second
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("FPS:", 35, 290, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(GetFps, 45, 300, 12, 255);
// Angle to the Player from the Boss
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("Ang2PlyrFrmBoss:", 35, 310, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(GetAngleToPlayer, 45, 320, 12, 255);
// Player's X Position
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("XPos:", 35, 330, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(truncate(GetPlayerX), 45, 340, 12, 255);
// Player's Y Position
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("YPos:", 35, 350, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(truncate(GetPlayerY), 45, 360, 12, 255);
// Number of Bullets currently active
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("Bullets:", 35, 370, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(truncate(GetEnemyShotCount), 45, 380, 12, 255);
// Time remaining in the current attack
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("Seconds Left:", 35, 390, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(truncate(GetTimer), 45, 400, 12, 255);
// Health of the Boss
SetFontColor(255, 0, 0, 0, 0, 0);
DrawText("Boss Health:", 35, 410, 12, 255);
SetFontColor(255, 255, 255, 128, 128, 128);
DrawText(truncate(GetLife), 45, 420, 12, 255);
break;
}
}
@Finalize {
loop(15)
{
CreateItem(ITEM_SCORE, rand(GetX,GetX*1.4), rand(GetY, GetY*1.4));
}
CreateItem(ITEM_BOMB, rand(GetX,GetX*1.4), rand(GetY, GetY*1.4));
DeleteGraphic(image);
}
}
There's what mine looks like...
EDIT: Yes, I know some parts of it appear to be tabbed incorrectly, but that's just the way the forums seem to render them. >__>