#TouhouDanmakufu
#Title[Bubble Fest]
#Text[Test script]
#PlayLevel[Hi]
#Image[.\img\Scarletsign.png]
#Player[FREE]
#ScriptVersion[2]
#BackGround[User(.\img\image.png, 0, 2)]
script_enemy_main {
let ImgBoss = "script\img\ExRumia.png";
let count = 0;
let count2 = 0;
let n = 20;
let speed = 1.5;
let c = 0;
let d = 0;
let e = 0;
let rand = 80;
let music = GetCurrentScriptDirectory~"bgm\17-砕月.mp3";
#include_function "lib\SHOT_REPLACE\shot_replace.dnh";
@Initialize {
LoadMusic(music);
SetLife(4000);
SetDamageRate(50, 10);
SetTimer(99);
shotinit;
MagicCircle(true);
SetScore(1584269474);
SetMovePosition02(225, 120, 60);
CutIn(YOUMU, "Watermelon "\""Bubble Fest"\", "", 0, 0, 0, 0);
LoadGraphic(ImgBoss);
SetTexture(ImgBoss);
SetGraphicRect(0, 0, 64, 64);
PlayMusic(music);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 16);
SetShotAutoDeleteClip(200, 200, 200, 200);
if(count2 == 0){
Concentration01(90);
n = 20;
PlaySE(GetCurrentScriptDirectory~"sound\Charge.wav")}
if(count == n){
loop(3){
CreateShotA(4, GetX, GetY, 0);
SetShotDataA(4, 0, speed, d+d, 0, 0, 0, RED03);
SetShotDataA(4, 20, speed, d+d, 0, 0, 0, RED03);
SetShotDataA(4, 40, speed, d+d, 0, 0, 0, RED03);
SetShotDataA(4, 60, speed, d+d+d, 0, 0, 0, PURPLE03);
SetShotDataA(4, 80, speed, d+d+d+d, 0, 0, 0, BLUE03);
SetShotDataA(4, 100, speed, d+d+d+d+d, 0, 0, 0, AQUA03);
SetShotDataA(4, 120, speed, d+d+d+d+d+d, 0, 0, 0, GREEN03);
SetShotDataA(4, 140, speed, d+d+d+d+d+d+d, 0, 0, 0, YELLOW03);
SetShotDataA(4, 160, speed, d+d+d+d+d+d+d+d, 0, 0, 0, ORANGE03);
SetShotDataA(4, 180, speed, d+d+d+d+d+d+d+d+d, 0, 0, 0, RED03);
SetShotDataA(4, 200, speed, d+d+d+d+d+d+d+d+d+d, 0, 0, 0, PURPLE03);
SetShotDataA(4, 220, speed, d+d+d+d+d+d+d+d+d+d+d, 0, 0, 0, BLUE03);
SetShotDataA(4, 240, speed, d+d+d+d+d+d+d+d+d+d+d+d, 0, 0, 0, AQUA03);
SetShotDataA(4, 260, speed, NULL, 0, 0, 0, GREEN03);
SetShotDataA(4, 280, speed, NULL, 0, 0, 0, YELLOW03);
SetShotDataA(4, 300, speed, NULL, 0, 0, 0, ORANGE03);
SetShotDataA(4, 320, speed, NULL, 0, 0, 0, RED03);
SetShotDataA(4, 340, speed, NULL, 0, 0, 0, PURPLE03);
SetShotDataA(4, 360, speed, NULL, 0, 0, 0, BLUE03);
SetShotDataA(4, 380, speed, NULL, 0, 0, 0, AQUA03);
SetShotDataA(4, 400, speed, NULL, 0, 0, 0, GREEN03);
SetShotDataA(4, 420, speed, NULL, 0, 0, 0, YELLOW03);
SetShotDataA(4, 440, speed, NULL, 0, 0, 0, ORANGE03);
SetShotDataA(4, 460, speed, NULL, 0, 0, 0, RED03);
SetShotDataA(4, 480, speed, NULL, 0, 0, 0, PURPLE03);
SetShotDataA(4, 500, speed, NULL, 0, 0, 0, BLUE03);
SetShotDataA(4, 520, speed+1, NULL, 0, 0, 0, WHITE03);
d += 22.4+e;
e += 0.01;
}
FireShot(4);
count = 0;
PlaySE(GetCurrentScriptDirectory~"sound\Po.wav")
}
if(count2 == 360){
Concentration01(90);
n = 10;
PlaySE(GetCurrentScriptDirectory~"sound\Charge.wav")
}
if(count2 == 540){
Concentration01(90);
n = 5;
PlaySE(GetCurrentScriptDirectory~"sound\Charge.wav")
}
if(count2 == 720){
Concentration01(90);
n = 3;
PlaySE(GetCurrentScriptDirectory~"sound\Charge.wav")
}
if(count2 == 900){
Concentration01(90);
n = 1;
PlaySE(GetCurrentScriptDirectory~"sound\Charge.wav")
}
count++;
count2++;
}
@DrawLoop {
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
}
}Not mine but this guy's scripts are too amazing to miss out on http://www.youtube.com/user/andomahoroThat's the fangame "Phantasm Romance". I think there's a topic on MotK where you can download the entire game. Fairuzons once had a playthrough through the entire game, but it isn't available anymore because they erased his account.
If only he posted them :V
#TouhouDanmakufu
#Title[Trickster Sign "Indecisive Guide ~ Normal"]
#Text[Not even the guide knows what to do when lost. It is most likely to stray from the true path.]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let ImgBoss = "script\img\ExRumia.png";
let count = -60;
let a = 0;
let b = 0;
let c = 0;
let d = 0;
@Initialize {
SetLife(4000);
SetTimer(60);
SetScore(10000000);
SetInvincibility(120);
SetMovePosition01(GetCenterX, GetClipMinY + 120, 5);
CutIn(YOUMU, "Trickster Sign"\""Indecisive Guide"\", "", 0, 0, 0, 0);
LoadGraphic(ImgBoss);
SetTexture(ImgBoss);
SetGraphicRect(0, 0, 64, 64);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 16);
SetShotAutoDeleteClip(500, 500, 500, 500);
if(count == 1) {
ascent( i in 1..34)
{
CreateShotA(i, GetX, GetY, 10);
SetShotDataA(i, 0, 3, i+a, 0, -0.05, 0, GREEN12);
SetShotDataA(i, 60, 3, i+a-80, 0, -0.01, 0, GREEN12);
SetShotDataA(i, 280, 2, i+a+100, -0.25, 0, 2, GREEN12);
SetShotDirectionType(ABSOLUTE);
FireShot(i);
a += 10;
}
ascent( j in 1..34)
{
CreateShotA(j, GetX, GetY, 10);
SetShotDataA(j, 0, 3, j+a, 0, -0.05, 0, GREEN12);
SetShotDataA(j, 60, 3, j+a+80, 0, -0.01, 0, GREEN12);
SetShotDataA(j, 280, 2, j+a-100, 0.25, 0, 2, GREEN12);
SetShotDirectionType(ABSOLUTE);
FireShot(j);
a += 10;
}
ascent( k in 1..98)
{
CreateShotA(k, GetX, GetY, 10);
SetShotDataA(k, 0, 3, k+c, 0, -0.05, 0, BLUE12);
SetShotDataA(k, 60, 4.5, NULL, 0, -0.05, 0, BLUE12);
SetShotDataA(k, 150+k, 3, NULL, 0, -0.05, 1, BLUE12);
SetShotDirectionType(ABSOLUTE);
FireShot(k);
c += 187;
}
}
if(count >= 90 && count <= 220){
loop(2){
CreateShot01(GetX, GetY, 3, b, PURPLE12, 10);
b += 360/2;
b += 13.2;
}
}
if(count == 220){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 230){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 240){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 250){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 260){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 270){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 280){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 290){
SetMovePosition02(rand(50, 350), rand(50, 200), 10);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 300){
SetMovePosition03(GetCenterX, GetClipMinY + 120, 10, 5);
loop(4){
CreateLaser01(GetX, GetY, 5, d, 1500, 10, RED11, 0);
d += 360/3.57443
}
}
if(count == 360){
count=0;
}
count++;
}
@DrawLoop {
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
}
}#TouhouDanmakufu
#Title[Frostbite "Ribbon of a Wondrous Child"]
#Text[Test script]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let ImgBoss = "script\img\ExRumia.png";
let count = 300;
let a=0;
let color=BLUE03;
let color2=BLUE04;
@Initialize {
SetLife(4000);
SetTimer(60);
SetScore(10000000);
SetInvincibility(120);
SetEnemyMarker(true);
SetMovePosition01(GetCenterX, GetClipMinY + 120, 5);
CutIn(YOUMU, "Frostbite"\""Ribbon of a Wondrous Child"\", "", 0, 0, 0, 0);
LoadGraphic(ImgBoss);
SetTexture(ImgBoss);
SetGraphicRect(0, 0, 64, 64);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 16);
SetShotAutoDeleteClip(200, 200, 200, 200);
if(count == 360) {
CreateShotA(1, GetClipMinX-50, rand(GetClipMinY, GetClipMaxY - 50), 0);
SetShotDataA(1, 0, 3, 0, 0.5, 0, 3, color);
ascent(i in 1..75){
CreateShotA(2, 0, 0, 0);
SetShotDataA(2, 0, 2, a, 0, -0.01, 0, color2);
SetShotDataA(2, 300, NULL, a, 0, -0.03, -3, color2);
a += 11;
AddShot(i*5, 1, 2, 0);
}
FireShot(1);
}
if(count == 420) {
CreateShotA(1, GetClipMaxX+50, rand(GetClipMinY + 50, GetClipMaxY), 0);
SetShotDataA(1, 0, 3, 180, 0.5, 0, 3, color);
ascent(i in 1..75){
CreateShotA(2, 0, 0, 0);
SetShotDataA(2, 0, 2, a, 0, -0.01, 0, color2);
SetShotDataA(2, 300, NULL, a, 0, -0.03, -3, color2);
a += 11;
AddShot(i*5, 1, 2, 0);
}
FireShot(1);
}
if(count == 480) {
CreateShotA(1, rand(GetClipMinX + 50, GetClipMaxX), GetClipMinY-50, 0);
SetShotDataA(1, 0, 3, 90, 0.5, 0, 3, color);
ascent(i in 1..75){
CreateShotA(2, 0, 0, 0);
SetShotDataA(2, 0, 2, a, 0, -0.01, 0, color2);
SetShotDataA(2, 300, NULL, a, 0, -0.03, -3, color2);
a += 11;
AddShot(i*5, 1, 2, 0);
}
FireShot(1);
}
if(count == 540) {
CreateShotA(1, rand(GetClipMinX, GetClipMaxX - 50), GetClipMaxY+50, 0);
SetShotDataA(1, 0, 3, 270, 0.5, 0, 3, color);
ascent(i in 1..75){
CreateShotA(2, 0, 0, 0);
SetShotDataA(2, 0, 2, a, 0, -0.01, 0, color2);
SetShotDataA(2, 300, NULL, a, 0, -0.03, -3, color2);
a += 11;
AddShot(i*5, 1, 2, 0);
}
FireShot(1);
count=0
}
count++;
}
@DrawLoop {
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
}
}#TouhouDanmakufu
#Title[Dreadnought "The Faring Assault"]
#Text[Test script]
#Image[.\img\Dreadnought.bmp]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let ImgBoss = "script\img\ExRumia.png";
let count = 0;
let time = 0;
let a = 135;
@Initialize {
SetLife(1);
SetTimer(50);
SetScore(1000000);
SetDamageRate(0, 0);
SetDurableSpellCard;
SetMovePosition02(225, 200, 60);
CutIn(YOUMU, "Dreadnought "\""The Faring Assault"\", "", 0, 0, 0, 0);
LoadGraphic(ImgBoss);
SetTexture(ImgBoss);
SetGraphicRect(0, 0, 128, 128);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 16);
if(count == 120){
PlaySE("lib\THCCL\SE\lazer01.wav");
CreateLaserB(1, 1, 20, RED02, 0);
SetLaserDataB(1, 0, 6, 0, 0, 0, 0, 45, 0);
SetLaserDataB(1, 60, 0, 0, 0, 0, 0, 45, 0);
SetLaserDataB(1, 120, 0, NULL, 0, NULL, 0, NULL, -2);
SetLaserDataB(1, 180, 0, NULL, 0, NULL, 0, NULL, 4);
SetLaserDataB(1, 210, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 400, 0, NULL, 0, NULL, 0, NULL, 0.7);
SetLaserDataB(1, 915, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 960, 0, NULL, 0, NULL, 0, NULL, -2);
SetLaserDataB(1, 1020, 0, NULL, 0, NULL, 0, NULL, 4);
SetLaserDataB(1, 1060, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 1100, 0, NULL, 0, NULL, 0, NULL, -0.5);
SetLaserDataB(1, 1130, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 1330, 0, NULL, 0, NULL, 0, NULL, -0.5);
SetLaserDataB(1, 1380, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 1600, 0, NULL, 0, NULL, 0, NULL, -0.7);
SetLaserDataB(1, 2115, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 2180, 0, NULL, 0, NULL, 0, NULL, -3);
SetLaserDataB(1, 2240, 0, NULL, 0, NULL, 0, NULL, 4);
SetLaserDataB(1, 2285, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(1, 2315, 0, NULL, 0, NULL, 0, NULL, -0.5);
CreateLaserB(3, 1, 20, RED02, 0);
SetLaserDataB(3, 0, 6, 0, 0, 0, 0, 135, 0);
SetLaserDataB(3, 60, 0, 0, 0, 0, 0, 135, 0);
SetLaserDataB(3, 270, 0, NULL, 0, NULL, 0, NULL, 2);
SetLaserDataB(3, 330, 0, NULL, 0, NULL, 0, NULL, -4);
SetLaserDataB(3, 360, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 400, 0, NULL, 0, NULL, 0, NULL, 0.7);
SetLaserDataB(3, 915, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 960, 0, NULL, 0, NULL, 0, NULL, 2);
SetLaserDataB(3, 1020, 0, NULL, 0, NULL, 0, NULL, -4);
SetLaserDataB(3, 1060, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 1100, 0, NULL, 0, NULL, 0, NULL, 0.5);
SetLaserDataB(3, 1130, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 1330, 0, NULL, 0, NULL, 0, NULL, 0.5);
SetLaserDataB(3, 1380, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 1600, 0, NULL, 0, NULL, 0, NULL, -0.7);
SetLaserDataB(3, 2115, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 2180, 0, NULL, 0, NULL, 0, NULL, 3);
SetLaserDataB(3, 2240, 0, NULL, 0, NULL, 0, NULL, -4);
SetLaserDataB(3, 2285, 0, NULL, 0, NULL, 0, NULL, 0);
SetLaserDataB(3, 2315, 0, NULL, 0, NULL, 0, NULL, 0.5);
ascent(i in 1..10){
CreateShotA(2, 0, 0, 10);
SetShotDataA(2, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(4, 0, 0, 10);
SetShotDataA(4, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(5, 0, 0, 10);
SetShotDataA(5, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(9, 0, 0, 10);
SetShotDataA(9, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(10, 0, 0, 10);
SetShotDataA(10, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(11, 0, 0, 10);
SetShotDataA(11, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(15, 0, 0, 10);
SetShotDataA(15, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(16, 0, 0, 10);
SetShotDataA(16, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(17, 0, 0, 10);
SetShotDataA(17, 0, 3, 90, 0, 0, 3, RED11);
CreateShotA(6, 0, 0, 10);
SetShotDataA(6, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(7, 0, 0, 10);
SetShotDataA(7, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(8, 0, 0, 10);
SetShotDataA(8, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(12, 0, 0, 10);
SetShotDataA(12, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(13, 0, 0, 10);
SetShotDataA(13, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(14, 0, 0, 10);
SetShotDataA(14, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(18, 0, 0, 10);
SetShotDataA(18, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(19, 0, 0, 10);
SetShotDataA(19, 0, 3, -90, 0, 0, 3, RED11);
CreateShotA(20, 0, 0, 10);
SetShotDataA(20, 0, 3, -90, 0, 0, 3, RED11);
AddShot(i*3+180, 1, 2, 20);
AddShot(i*3+180, 1, 4, 100);
AddShot(i*3+180, 1, 5, 180);
AddShot(i*3+1020, 1, 9, 20);
AddShot(i*3+1020, 1, 10, 100);
AddShot(i*3+1020, 1, 11, 180);
AddShot(i*3+330, 3, 6, 20);
AddShot(i*3+330, 3, 7, 100);
AddShot(i*3+330, 3, 8, 180);
AddShot(i*3+1020, 3, 12, 20);
AddShot(i*3+1020, 3, 13, 100);
AddShot(i*3+1020, 3, 14, 180);
}
ascent(i in 1..100){
CreateShotA(15, 0, 0, 10);
SetShotDataA(15, 0, 3, 90, 0, 0, 3, RED12);
CreateShotA(16, 0, 0, 10);
SetShotDataA(16, 0, 3, 90, 0, 0, 3, RED12);
CreateShotA(17, 0, 0, 10);
SetShotDataA(17, 0, 3, 90, 0, 0, 3, RED12);
CreateShotA(18, 0, 0, 10);
SetShotDataA(18, 0, 3, 270, 0, 0, 3, RED12);
CreateShotA(19, 0, 0, 10);
SetShotDataA(19, 0, 3, 270, 0, 0, 3, RED12);
CreateShotA(20, 0, 0, 10);
SetShotDataA(20, 0, 3, 270, 0, 0, 3, RED12);
CreateShotA(21, 0, 0, 10);
SetShotDataA(21, 0, 3, -90, 0, 0, 3, RED12);
CreateShotA(22, 0, 0, 10);
SetShotDataA(22, 0, 3, -90, 0, 0, 3, RED12);
CreateShotA(23, 0, 0, 10);
SetShotDataA(23, 0, 3, -90, 0, 0, 3, RED12);
CreateShotA(24, 0, 0, 10);
SetShotDataA(24, 0, 3, -270, 0, 0, 3, RED12);
CreateShotA(25, 0, 0, 10);
SetShotDataA(25, 0, 3, -270, 0, 0, 3, RED12);
CreateShotA(26, 0, 0, 10);
SetShotDataA(26, 0, 3, -270, 0, 0, 3, RED12);
AddShot(i*7+2240, 1, 15, 20);
AddShot(i*7+2240, 1, 16, 100);
AddShot(i*7+2240, 1, 17, 180);
AddShot(i*7+2240, 1, 18, 20);
AddShot(i*7+2240, 1, 19, 140);
AddShot(i*7+2240, 1, 20, 280);
AddShot(i*7+2240, 3, 21, 20);
AddShot(i*7+2240, 3, 22, 100);
AddShot(i*7+2240, 3, 23, 180);
AddShot(i*7+2240, 3, 24, 20);
AddShot(i*7+2240, 3, 25, 140);
AddShot(i*7+2240, 3, 26, 280);
}
FireShot(1);
FireShot(3);
}
if(count == 180 || count == 340 || count == 960){
loop(90){
CreateShot01(GetX, GetY, 6, a, RED02, 10);
a += 3;
}
a = 135;
}
if(count == 1220){
SetShotDirectionType(PLAYER);
CreateShot01(GetX, GetY, 8, 0, RED02, 0);
count=1215;
}
if(time==1290){
count=1221;
}
if(count == 1250){
SetShotDirectionType(PLAYER);
CreateShot01(GetX, GetY, 8, 0, RED02, 0);
count=1245;
}
if(time==1380){
count=1251;
}
if(count == 1280){
SetShotDirectionType(PLAYER);
CreateShot01(GetX, GetY, 8, 10, RED02, 0);
CreateShot01(GetX, GetY, 8, -10, RED02, 0);
CreateShot01(GetX, GetY, 8, 0, RED01, 0);
count=1275;
}
if(time==1501){
count=1281;
}
if(count==1380){
SetShotDirectionType(PLAYER);
CreateShot01(GetX, GetY, 8, 30, RED02, 0);
CreateShot01(GetX, GetY, 8, -30, RED02, 0);
CreateShot01(GetX, GetY, 8, 0, RED01, 0);
count=1375;
}
if(time==2181){
count=1381;
}
count++;
time++;
}
@DrawLoop {
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
}
}#TouhouDanmakufu
#Title[Fire Sign "Agni's Pyrolysis"]
#Text[Fire burns not very vigorously because of the lask of air. Have you notced that the room becomes hot and stuffy? (though the stuffiness is still the same)]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let frame = -120;
let bg = GetCurrentScriptDirectory~"images\Bossbgred.jpg";
let angle=0;
let i;
let j;
let max1=6;
let max2=3;
#include_function "..\drawing.txt"
@Initialize {
SetLife(2000);
SetTimer(60);
SetScore(1000000);
SetDamageRate(25,0);
SetMovePosition02(GetCenterX, GetClipMinY+120, 120);
SetInvincibility(120);
Concentration01(120);
PlaySE(GetCurrentScriptDirectory~"SFX\Charge.wav");
CutIn(YOUMU, "Fire Sign "\""Agni's Pyrolysis"\", "", 0, 0, 0, 0);
LoadGraphic(ImgBoss);
SetTexture(ImgBoss);
SetGraphicRect(0, 0, 64, 64);
SetShotDirectionType(ABSOLUTE);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 16);
if(frame>0){
if(frame%4==0){
SetShotDirectionType(ABSOLUTE);
ascent(i in 0..max1){
ascent(j in 0..max2){
CreateShot01(GetX+cos(angle+i*360/max1)*60, GetY+sin(angle+i*360/max1)*60, 1.5, angle+i*360/max1+j*360/max2, 241+(i+j)%3, 30);
}
CreateShot01(GetX+cos(angle+i*360/max1)*60, GetY+sin(angle+i*360/max1)*60, 1.5, angle+i*360/max1-180, 241+i%3, 30);
}
}
angle=(frame/16)%120;
angle=(angle-120)^2/100*(angle-105)/30*(angle-80)/10*(angle-50)/50*(angle-45)/40*(angle-30)/60*angle^2/100;
}
frame++;
DeleteEnemyShotInCircle(ALL, GetX, GetY, 1);
}
@DrawLoop {
bossSC;
}
@BackGround{
backgroundSC;
}
@Finalize {
DeleteGraphic(ImgBoss);
}
}Use this zipped file (http://www.mediafire.com/file/dvmg22zmgmy/Fire Sign.rar) for playing :)
#TouhouDanmakufu
#Title[RPS]
#Text[Try it out, Rock Paper Scissors with Danmakufu, version 01]
#Player[FREE]
#BGM[\bgm\Voyage 1970.mp3]
#Background[User(.\Test.png, 25, 0)]
#ScriptVersion[2]
script_enemy_main {
let number = 0;
let number2 = rand_int(0,2);
let showopponentchoice = false;
@Initialize {
LoadCommonData;
SetLife(1000);
Expert;
}
@MainLoop {
//////////////////////////////////
ForbidBomb(true); ForbidShot(true); SetPlayerX(GetCenterX); SetPlayerY(GetClipMaxY-((75+50)/2));
///////////////////////////////////
if(number < 0) {
number = 0;
}
if(number > 2) {
number = 2;
}
if(GetKeyState(VK_UP) == KEY_PUSH) {
number++;
}
if(GetKeyState(VK_DOWN) == KEY_PUSH) {
number--;
}
//////////////////////////////////
if(GetKeyState(VK_SHOT)==KEY_PUSH) {
showopponentchoice = true;
if(number == 0 && number2 == 2) {
SetCommonData("lastbattleresult", "Won");
AddLife(-1000);
}
if(number == 1 && number2 == 0) {
SetCommonData("lastbattleresult", "Won");
AddLife(-1000);
}
if(number == 2 && number2 == 1) {
SetCommonData("lastbattleresult", "Won");
AddLife(-1000);
}
if(number == 2 && number2 == 0) {
SetCommonData("lastbattleresult", "Lost");
ExtendPlayer(-100); ShootDownPlayer;
}
if(number == 0 && number2 == 1) {
SetCommonData("lastbattleresult", "Lost");
ExtendPlayer(-100); ShootDownPlayer;
}
if(number == 1 && number2 == 2) {
SetCommonData("lastbattleresult", "Lost");
ExtendPlayer(-100); ShootDownPlayer;
}
if(number == number2) {
showopponentchoice = false; number2 = rand_int(0,2);
}
}
}
@DrawLoop {
SetFontColor(255, 142, 78, 255, 142, 78);
DrawText("Up or down arrow keys to choose, then press shot button", 40, 35, 10, 255);
DrawText("Result of Last Round: ", 40, 135, 12, 255);
if(GetCommonData("lastbattleresult") == "NoData") {
DrawText("Not Yet Played", 200, 135, 12, 255);
} else {
DrawText(GetCommonData("lastbattleresult"), 200, 135, 12, 255);
}
SetFontColor(255, 255, 255, 255, 255, 255);
if(number == 0){
DrawText("Rock", 40, 45, 20, 255);
}
if(number == 1){
DrawText("Paper", 40, 45, 20, 255);
}
if(number == 2){
DrawText("Scissors", 40, 45, 20, 255);
}
if(showopponentchoice == true){
if(number2 == 0) {
DrawText("Rock", 240, 45, 20, 255);
}
if(number2 == 1) {
DrawText("Paper", 240, 45, 20, 255);
}
if(number2 == 2) {
DrawText("Scissors", 240, 45, 20, 255);
}
}
}
@Finalize {
SaveCommonData;
}
}
#TouhouDanmakufu
#Title[Et]
#Text[Et]
#Player[FREE]
#ScriptVersion[2]
#BackGround[User(.\bg.png, 0, 0)]
script_enemy_main {
let shot = GetCurrentScriptDirectory~"shot.wav";
let frame = 0;
let shot2 = GetCurrentScriptDirectory~"oll.wav";
let BossImage = "script\Satorin!\Satorin.png";
let BossCutIn = "script\Satorin!\Satorin2.png";
let frame = 0;
let spritey = 0;
let spritex = 0;
@Initialize {
LoadSE(shot2);
LoadGraphic(BossImage);
SetMovePosition02(GetCenterX, GetCenterY - 100, 120);
SetLife(1000);
SetDamageRate(100, 150);
CutIn(KOUMA, "Etek", BossCutIn, 0, 0, 186, 442);
SetScore(500000);
SetEnemyMarker(true);
Concentration01(60);
Concentration02(60);
MagicCircle(true);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
if(frame%15==0){
CreateShot01(GetX, GetY, 3, 90, RED02, 10);
CreateShot01(GetX, GetY, 3, 90+90, RED02, 10);
CreateShot01(GetX, GetY, 3, 90-90, RED02, 10);
}
if(frame%10==0){
CreateShotA(1, GetX, GetY, 10);
CreateShotA(2, GetX, GetY, 10);
CreateShotA(3, GetX, GetY, 10);
CreateShotA(4, GetX, GetY, 10);
SetShotDataA(1, 0, 0.01, rand(0, 360), 0, 0.001, 0.02, BLUE11);
SetShotDataA(2, 0, 0.01, rand(0, 360), 0, 0.001, 0.02, BLUE11);
SetShotDataA(3, 0, 0.01, rand(0, 360), 0, 0.001, 0.02, BLUE11);
SetShotDataA(4, 0, 0.01, rand(0, 360), 0, 0.001, 0.02, BLUE11);
PlaySE(shot2);
SetShotKillTime(1, 2400);
SetShotKillTime(2, 2400);
SetShotKillTime(3, 2400);
SetShotKillTime(4, 2400);
}
if(frame%55==0){
CreateShot01(GetX, GetY, 8, rand(0, 360), YELLOW03, 10);
CreateShot01(GetX, GetY, 8, rand(0, 360), YELLOW03, 10);
CreateShot01(GetX, GetY, 8, rand(0, 360), YELLOW03, 10);
CreateShot01(GetX, GetY, 8, rand(0, 360), YELLOW03, 10);
}
FireShot(1);
FireShot(2);
FireShot(3);
FireShot(4);
frame++;
if(frame==60){
SetMovePositionRandom01(rand(80, 80), rand(80, 80), 2, 32, 16, 416, 464);
frame = 30;
}
}
@DrawLoop{
//All this foolishness pertains to drawing the boss. Ignore everything in @Drawloop unless you have read and understand Nuclear Cheese's Drawing Tutorial.
SetColor(255,255,255);
if (floor(spritey+0.1) == 4)
{
spritex = 0;
if (spritey == 0){spritey++;}
else{spritey = 0;}
}
else{spritex += 0.13;}
SetGraphicAngle(0,0,0);
SetAlpha(255);
SetTexture(BossImage);
SetGraphicRect(floor(spritex)*47.75,spritey*64,floor(spritex)*47.75+47.75,spritey*64+64);
DrawGraphic(GetX,GetY);
}
@Finalize{
DeleteGraphic(BossImage);
DeleteSE(shot2);
}
}#TouhouDanmakufu
#Title[SAFESPOTS GALORE]
#Text[バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨
バーカ⑨バーカ⑨バーカ⑨バーカ⑨]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let BossImage = "script\img\ExRumia.png";
let imgCutIn = "script\img\RumiaCutIn.png";
let frame = -180;
let a = 180+11.25;
let b = -11.25;
let c = 0;
let spd = 2.5;
let newspeed = 3;
let graphic = [BLUE21, AQUA21, WHITE21];
@Initialize {
SetLife(2000);
SetTimer(60);
Concentration02(150);
SetInvincibility(180);
SetEnemyMarker(true);
LoadGraphic(BossImage);
SetTexture(BossImage);
SetGraphicRect(0, 0, 64, 64);
CutIn(YOUMU, "Safespots Galore", imgCutIn, 0, 0, 350, 350);
SetScore(1000000);
SetDurableSpellCard;
SetMovePosition02(GetCenterX, GetClipMinY+100, 60);
}
@MainLoop {
SetShotAutoDeleteClip(200, 200, 200, 200);
SetCollisionA(GetX, GetY, 16);
SetCollisionB(GetX, GetY, 10);
if(frame == 2) {
spd = 2.5;
loop(5) {
shard1(spd, a, a-135, 1);
shard1(spd, b, b+135, 1);
shard1(spd, a, a+135, 1);
shard1(spd, b, b-135, 1);
spd += 1;
}
a-=9.25;
b+=9.25;
frame = 0;
c = 0;
}
if(a<225-15.25*6) { a= 180+45+c; frame=-30;}
if(b>-45+15.25*6) { b= 0-45-c; }
frame++;
}
task shard1(speed, way, new, vel) {
CreateShotA(1, GetX, GetY, 0);
SetShotDataA(1, 0, speed, way, 0, 0, speed, graphic[rand_int(0, 2)]);
SetShotDataA(1, 50, 0, NULL, 0, 0, 0, NULL);
SetShotDataA(1, 120, newspeed, new, 0.25*vel, 0, newspeed, NULL);
SetShotDataA(1, 180, newspeed, NULL, 0, 0, newspeed, NULL);
FireShot(1);
CreateShotA(1, GetX, GetY, 0);
SetShotDataA(1, 0, speed, way, 0, 0, speed, graphic[rand_int(0, 2)]);
SetShotDataA(1, 50, 0, NULL, 0, 0, 0, NULL);
SetShotDataA(1, 120, newspeed, new, -0.25*vel, 0, newspeed, NULL);
SetShotDataA(1, 180, newspeed, NULL, 0, 0, newspeed, NULL);
FireShot(1);
}
@DrawLoop {
SetTexture(BossImage);
DrawGraphic(GetX, GetY);
}
@Finalize {
}
}
calling all idiots...
#TouhouDanmakufu
#Title[CS's second spell card]
#Text[number 2. hooray.]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\ExRumia.png";
@Initialize{
SetLife(5000);
SetTimer(600);
SetScore(100000);
SetMovePosition01(GetCenterX,GetCenterY,5);
LoadGraphic(imgBoss);
mainTask;
}
@MainLoop{
SetCollisionA(GetX,GetY,32);
SetCollisionB(GetX,GetY,16);
yield;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(64,1,127,64);
SetGraphicScale(01,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@BackGround{
SetTexture(NULL);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(0,0,500,500);
SetGraphicScale(1,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetCenterX,GetCenterY);
}
@Finalize{
DeleteGraphic(imgBoss);
}
task mainTask{
yield;
mainFire;
secondFire;
thirdFire;
homingFire;
movement;
}
task movement{
SetMovePosition01(GetCenterX,120,5);
yield;
}
task mainFire{
let count = 0;
loop{
CreateShot01(GetX,GetY,2,sin(count)*90+90,BLUE21,60);
count += 10;
loop(3){yield;}
}
}
task secondFire{
let count = 0;
loop{
CreateShot01(GetX,GetY,5,cos(count)*360+90,GREEN21,60);
count += 3;
loop(3){yield;}
}
}
task thirdFire{
let count = 0;
loop{
CreateShot01(GetX,GetY,2,sin(count)*90+90,PURPLE21,60);
count += 20;
loop(3){yield;}
}
}
task homingFire{
loop{
CreateShot01(GetX,GetY,4,GetAngleToPlayer,ORANGE03,10);
wait(80);
yield;
}
}
function wait(w){
loop(w){yield;}
}
}#TouhouDanmakufu
#Title[Walking the bright path]
#Text[number 1]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\ExRumia.png";
@Initialize{
SetLife(10000);
SetTimer(600);
SetScore(100000);
SetMovePosition01(GetCenterX,GetCenterY,5);
LoadGraphic(imgBoss);
mainTask;
}
@MainLoop{
SetCollisionA(GetX,GetY,32);
SetCollisionB(GetX,GetY,16);
yield;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(64,1,127,64);
SetGraphicScale(0.7,0.7);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@BackGround{
SetTexture(NULL);
SetRenderState(ALPHA);
SetAlpha(0);
SetGraphicRect(0,0,512,512);
SetGraphicScale(1,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetCenterX,GetCenterY);
}
@Finalize{
DeleteGraphic(imgBoss);
}
task mainTask{
yield;
mainFire;
secondFire;
thirdFire;
movement;
}
task movement{
loop{
SetMovePosition01(GetCenterX-30,120,5);
wait(120);
SetMovePosition01(GetCenterX+30,120,5);
wait(120);
yield;
}
}
task mainFire{
loop{
CreateShot01(GetEnemyX,GetEnemyY,3,GetAngleToPlayer+10,PURPLE32,10);
CreateShot01(GetEnemyX,GetEnemyY,3,GetAngleToPlayer-10,PURPLE32,10);
wait(5);
yield;
}
}
task secondFire{
loop{
CreateShot01(GetEnemyX,GetEnemyY,3,GetAngleToPlayer,YELLOW03,10);
wait(60);
yield;
}
}
task thirdFire{
loop{
CreateLaser01(GetEnemyX,GetEnemyY,5,GetAngleToPlayer+30,300,30,ORANGE21,10);
CreateLaser01(GetEnemyX,GetEnemyY,5,GetAngleToPlayer-30,300,30,ORANGE21,10);
CreateLaser01(GetEnemyX,GetEnemyY,5,GetAngleToPlayer+20,300,30,RED21,10);
CreateLaser01(GetEnemyX,GetEnemyY,5,GetAngleToPlayer-20,300,30,RED21,10);
wait(20);
yield;
}
}
function wait(w){
loop(w){yield;}
}
}
#TouhouDanmakufu
#Title[Border Sign "Last Remote"]
#Text[Psuedo-syncronized with SA's Extra Mode stage theme.]
#Image[.\LR.png]
#BackGround[User(.\bg.png, 1, 1)]
#PlayLevel[Normal]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let yukari = GetCurrentScriptDirectory~"yukarinsprite.png";
let cx = GetCenterX;
let frame = -3;
let fury = 0;
let beta = 0;
let dicks = 61;
let LR = GetCurrentScriptDirectory~"LR.png";
let bgm = GetCurrentScriptDirectory~"ZUN - Last Remote.mp3";
function firea(a){
CreateShotA(1, GetX, GetY, 0);
SetShotDataA(1, 0, 3.7 - a*0.1, GetAngleToPlayer - 25 + rand_int(0, 10) + a*9, 0.7, 0, 2.5, RED23);
SetShotDataA(1, 90, 0.6, 130, 0, 0, 2.5, RED12);
FireShot(1);
}
function fireb(b){
CreateShotA(2, GetX, GetY, 0);
SetShotDataA(2, 0, 3.7 - b*0.1, GetAngleToPlayer + 25 - rand_int(0, 10) - b*9, -0.7, 0, 2.5, RED23);
SetShotDataA(2, 90, 0.6, 50, 0, 0, 2.5, RED12);
FireShot(2);
}
function firec(c){
CreateShotA(3, GetX, GetY, 0);
SetShotDataA(3, 0, 8 - c*0.4, GetAngleToPlayer - 25 + rand_int(-10, 10) + c*9, 0.9, 0, 5, BLUE01);
SetShotDataA(3, 34, 0.8, 120, 0, 0, 2.5, BLUE05);
FireShot(3);
}
function fired(d){
CreateShotA(4, GetX, GetY, 0);
SetShotDataA(4, 0, 8 - d*0.4, GetAngleToPlayer + 25 - rand_int(-10, 10) - d*9, -0.9, 0, 5, BLUE01);
SetShotDataA(4, 34, 0.8, 60, 0, 0, 2.5, BLUE05);
FireShot(4);
}
function firee(e){
CreateShotA(5, GetX, GetY, 0);
SetShotDataA(5, 0, 8 - e*0.8, GetAngleToPlayer - 40 + rand_int(-10, 10) + e*9, 2, 0, 15, RED02);
SetShotDataA(5, 35, 0.85, 105 + rand_int(-10, 10), 0, 0, 2.5, RED31);
FireShot(5);
}
function firef(f){
CreateShotA(6, GetX, GetY, 0);
SetShotDataA(6, 0, 8 - f*0.8, GetAngleToPlayer + 40 - rand_int(-10, 10) - f*9, -2, 0, 15, RED02);
SetShotDataA(6, 35, 0.85, 75 + rand_int(-10, 10), 0, 0, 2.5, RED31);
FireShot(6);
}
function fireg(g){
CreateShotA(7, rand_int(-10, 30) + g, 0, 0);
SetShotDataA(7, 0, 9, 90, 0, -0.15, 1.05, GREEN01);
FireShot(7);
}
function fireh(h){
CreateShotA(8, GetX, GetY, 0);
SetShotDataA(8, 0, 6, GetAngleToPlayer + h, 0, -0.055, 0.7, YELLOW21);
FireShot(8);
}
function firei(i){
CreateShotA(9, GetX, GetY, 0);
SetShotDataA(9, 0, 6, GetAngleToPlayer + i + 5, 0, -0.055, 0.7, YELLOW21);
FireShot(9);
}
function blue(a){
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 10, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 10, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 15, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 15, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 20, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 20, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 25, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 25, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 40, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 40, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 45, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 45, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 30, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 30, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 35, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 35, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 50, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 50, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 55, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 55, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 12.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 12.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 17.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 17.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 22.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 22.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 27.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 27.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 42.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 42.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 47.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 47.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 32.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 32.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 37.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 37.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 52.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 52.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 57.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 57.5, BLUE02, a);
}
@Initialize {
SetLife(10000);
SetEnemyMarker(true);
SetDamageRate(100, 40);
SetInvincibility(2380);
SetTimer(40);
SetScore(900000);
CutIn(YOUMU, "Border Sign - Last Remote", LR, 0, 0, 0, 0);
SetEffectForZeroLife(150,60, 1);
LoadMusic(bgm);
SetDurableSpellCard;
SetGraphicRect(1,1,64,64);
LoadGraphic(yukari);
SetMovePosition02(cx+0,60,60);
}
@MainLoop {
beta++;
frame++;
fury++;
dicks++;
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
if(fury==380){
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 13 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 13 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 16 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 16 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 20 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 20 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 25 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 25 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 40 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 40 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 45 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 45 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 30 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 30 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 35 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 35 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 50 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 50 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 55 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 55 - rand_int(-3,5), PURPLE03, 0);
fury = 376;
}
if(frame==-2){
CreateShot02(GetX, GetY, 1, GetAngleToPlayer, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 18, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 18, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 24, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 24, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 6, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 6, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 12, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 12, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 36, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 30, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 30, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 36, 0.08, 9, PURPLE03, 0);
frame = 0;
}
if(frame==10){
firea(1);
firea(2);
firea(3);
firea(4);
firea(5);
firea(6);
firea(7);
firea(8);
firea(9);
firea(10);
firea(-1);
firea(-2);
firea(-3);
firea(-4);
firea(-5);
}
if(frame==20){
fireb(1);
fireb(2);
fireb(3);
fireb(4);
fireb(5);
fireb(6);
fireb(7);
fireb(8);
fireb(9);
fireb(-1);
fireb(-2);
fireb(-3);
fireb(-4);
fireb(-5);
fireb(10);
frame = 0;
}
if(beta==840){
frame = 30;
}
if(frame==31){
firec(-6);
firec(-4);
firec(-2);
firec(0);
firec(2);
firec(4);
firec(6);
frame = 32;
}
if(frame==38){
fired(-6);
fired(-4);
fired(-2);
fired(0);
fired(2);
fired(4);
fired(6);
frame = 30;
}
if(beta==1740){
frame = 40;
}
if(frame==46){
firee(-2);
firee(1);
}
if(frame==53){
firef(-1);
firef(1);
}
if(frame==59){
firee(-2);
firee(1);
}
if(frame==65){
firef(-1);
firef(1);
fireg(20);
fireg(70);
fireg(120);
fireg(170);
fireg(220);
fireg(270);
fireg(320);
fireg(370);
firei(-70);
firei(-60);
firei(-50);
firei(-40);
firei(-30);
firei(-80);
firei(-20);
firei(-10);
firei(0);
firei(10);
firei(20);
firei(30);
firei(40);
firei(50);
firei(60);
firei(70);
firei(80);
firei(90);
fireh(-90);
firei(-170);
firei(-160);
firei(-150);
firei(-140);
firei(-130);
firei(-120);
firei(-110);
firei(110);
firei(120);
firei(130);
firei(140);
firei(150);
firei(160);
firei(170);
firei(100);
firei(-100);
}
if(frame==71){
firee(-2);
firee(1);
}
if(frame==77){
firef(-1);
firef(1);
}
if(frame==83){
firee(-2);
firee(1);
}
if(frame==89){
firef(-1);
firef(1);
fireg(20);
fireg(70);
fireg(120);
fireg(170);
fireg(220);
fireg(270);
fireg(320);
fireg(370);
fireh(-70);
fireh(-60);
fireh(-50);
fireh(-40);
fireh(-30);
fireh(-80);
fireh(-20);
fireh(-10);
fireh(0);
fireh(10);
fireh(20);
fireh(30);
fireh(40);
fireh(50);
fireh(60);
fireh(70);
fireh(80);
fireh(90);
fireh(-90);
fireh(-170);
fireh(-160);
fireh(-150);
fireh(-140);
fireh(-130);
fireh(-100);
fireh(-20);
fireh(-10);
fireh(110);
fireh(120);
fireh(130);
fireh(140);
fireh(150);
fireh(160);
fireh(170);
fireh(100);
frame = 39;
}
if(beta==1530){
dicks = 59;
}
if(dicks==60){
CreateShotA(10, 50, 450, 0);
SetShotDataA(10, 0, 0.6, 300, 0.24, 0, 0.6, BLUE03);
SetShotDataA(10, 420, 0.6, 82, 0, 0, 0.6, BLUE03);
FireShot(10);
CreateShotA(11, 400, 450, 0);
SetShotDataA(11, 0, 0.6, 240, -0.24, 0, 0.6, BLUE03);
SetShotDataA(11, 420, 0.6, 98, 0, 0, 0.6, BLUE03);
FireShot(11);
CreateShotA(12, 50, 450, 0);
SetShotDataA(12, 0, 0.6, 290, 0.68, 0, 0.6, BLUE03);
SetShotDataA(12, 300, 0.6, 82, 0, 0, 0.6, BLUE03);
FireShot(12);
CreateShotA(13, 400, 450, 0);
SetShotDataA(13, 0, 0.6, 250, -0.68, 0, 0.6, BLUE03);
SetShotDataA(13, 300, 0.6, 98, 0, 0, 0.6, BLUE03);
FireShot(13);
dicks = 0;
}
if(beta==150){
blue(0);
}
if(beta==380){
blue(0);
}
if(beta==610){
blue(0);
}
if(beta==840){
blue(0);
}
if(beta==1070){
blue(0);
}
if(beta==1300){
blue(0);
}
if(beta==1530){
blue(0);
}
if(beta==1760){
blue(0);
}
if(beta==1920){
blue(0);
}
if(beta==2080){
blue(0);
}
if(beta==2240){
blue(0);
}
if(beta==2380){
blue(0);
}
if(beta==2470){
blue(0);
}
}
@DrawLoop {
SetColor(255,255,255);
SetRenderState(ALPHA);
SetTexture(yukari);
DrawGraphic(GetX(),GetY());
SetGraphicRect(1, 1, 64, 64);
}
@Finalize {
DeleteGraphic(yukari);
}
@BackGround {
}
}THIS IS HOW REAL MEN CODE.Code: [Select]#TouhouDanmakufu
#Title[Border Sign "Last Remote"]
#Text[Psuedo-syncronized with SA's Extra Mode stage theme.]
#Image[.\LR.png]
#BackGround[User(.\bg.png, 1, 1)]
#PlayLevel[Normal]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let yukari = GetCurrentScriptDirectory~"yukarinsprite.png";
let cx = GetCenterX;
let frame = -3;
let fury = 0;
let beta = 0;
let dicks = 61;
let LR = GetCurrentScriptDirectory~"LR.png";
let bgm = GetCurrentScriptDirectory~"ZUN - Last Remote.mp3";
function firea(a){
CreateShotA(1, GetX, GetY, 0);
SetShotDataA(1, 0, 3.7 - a*0.1, GetAngleToPlayer - 25 + rand_int(0, 10) + a*9, 0.7, 0, 2.5, RED23);
SetShotDataA(1, 90, 0.6, 130, 0, 0, 2.5, RED12);
FireShot(1);
}
function fireb(b){
CreateShotA(2, GetX, GetY, 0);
SetShotDataA(2, 0, 3.7 - b*0.1, GetAngleToPlayer + 25 - rand_int(0, 10) - b*9, -0.7, 0, 2.5, RED23);
SetShotDataA(2, 90, 0.6, 50, 0, 0, 2.5, RED12);
FireShot(2);
}
function firec(c){
CreateShotA(3, GetX, GetY, 0);
SetShotDataA(3, 0, 8 - c*0.4, GetAngleToPlayer - 25 + rand_int(-10, 10) + c*9, 0.9, 0, 5, BLUE01);
SetShotDataA(3, 34, 0.8, 120, 0, 0, 2.5, BLUE05);
FireShot(3);
}
function fired(d){
CreateShotA(4, GetX, GetY, 0);
SetShotDataA(4, 0, 8 - d*0.4, GetAngleToPlayer + 25 - rand_int(-10, 10) - d*9, -0.9, 0, 5, BLUE01);
SetShotDataA(4, 34, 0.8, 60, 0, 0, 2.5, BLUE05);
FireShot(4);
}
function firee(e){
CreateShotA(5, GetX, GetY, 0);
SetShotDataA(5, 0, 8 - e*0.8, GetAngleToPlayer - 40 + rand_int(-10, 10) + e*9, 2, 0, 15, RED02);
SetShotDataA(5, 35, 0.85, 105 + rand_int(-10, 10), 0, 0, 2.5, RED31);
FireShot(5);
}
function firef(f){
CreateShotA(6, GetX, GetY, 0);
SetShotDataA(6, 0, 8 - f*0.8, GetAngleToPlayer + 40 - rand_int(-10, 10) - f*9, -2, 0, 15, RED02);
SetShotDataA(6, 35, 0.85, 75 + rand_int(-10, 10), 0, 0, 2.5, RED31);
FireShot(6);
}
function fireg(g){
CreateShotA(7, rand_int(-10, 30) + g, 0, 0);
SetShotDataA(7, 0, 9, 90, 0, -0.15, 1.05, GREEN01);
FireShot(7);
}
function fireh(h){
CreateShotA(8, GetX, GetY, 0);
SetShotDataA(8, 0, 6, GetAngleToPlayer + h, 0, -0.055, 0.7, YELLOW21);
FireShot(8);
}
function firei(i){
CreateShotA(9, GetX, GetY, 0);
SetShotDataA(9, 0, 6, GetAngleToPlayer + i + 5, 0, -0.055, 0.7, YELLOW21);
FireShot(9);
}
function blue(a){
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 10, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 10, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 15, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 15, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 20, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 20, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 25, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 25, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 40, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 40, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 45, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 45, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 30, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 30, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 35, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 35, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 50, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 50, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 55, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 55, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 12.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 12.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 17.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 17.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 22.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 22.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 27.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 27.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 42.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 42.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 47.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 47.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 32.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 32.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 37.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 37.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 52.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 52.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 57.5, BLUE02, a);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 57.5, BLUE02, a);
}
@Initialize {
SetLife(10000);
SetEnemyMarker(true);
SetDamageRate(100, 40);
SetInvincibility(2380);
SetTimer(40);
SetScore(900000);
CutIn(YOUMU, "Border Sign - Last Remote", LR, 0, 0, 0, 0);
SetEffectForZeroLife(150,60, 1);
LoadMusic(bgm);
SetDurableSpellCard;
SetGraphicRect(1,1,64,64);
LoadGraphic(yukari);
SetMovePosition02(cx+0,60,60);
}
@MainLoop {
beta++;
frame++;
fury++;
dicks++;
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
if(fury==380){
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 13 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 13 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 16 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 16 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 20 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 20 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 25 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 25 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 40 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 40 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 45 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 45 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 30 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 30 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 35 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 35 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 50 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 50 - rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer + 55 + rand_int(-3,5), PURPLE03, 0);
CreateShot01(GetX, GetY, 12, GetAngleToPlayer - 55 - rand_int(-3,5), PURPLE03, 0);
fury = 376;
}
if(frame==-2){
CreateShot02(GetX, GetY, 1, GetAngleToPlayer, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 18, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 18, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 24, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 24, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 6, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 6, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 12, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 12, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 36, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 30, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer + 30, 0.08, 9, PURPLE03, 0);
CreateShot02(GetX, GetY, 1, GetAngleToPlayer - 36, 0.08, 9, PURPLE03, 0);
frame = 0;
}
if(frame==10){
firea(1);
firea(2);
firea(3);
firea(4);
firea(5);
firea(6);
firea(7);
firea(8);
firea(9);
firea(10);
firea(-1);
firea(-2);
firea(-3);
firea(-4);
firea(-5);
}
if(frame==20){
fireb(1);
fireb(2);
fireb(3);
fireb(4);
fireb(5);
fireb(6);
fireb(7);
fireb(8);
fireb(9);
fireb(-1);
fireb(-2);
fireb(-3);
fireb(-4);
fireb(-5);
fireb(10);
frame = 0;
}
if(beta==840){
frame = 30;
}
if(frame==31){
firec(-6);
firec(-4);
firec(-2);
firec(0);
firec(2);
firec(4);
firec(6);
frame = 32;
}
if(frame==38){
fired(-6);
fired(-4);
fired(-2);
fired(0);
fired(2);
fired(4);
fired(6);
frame = 30;
}
if(beta==1740){
frame = 40;
}
if(frame==46){
firee(-2);
firee(1);
}
if(frame==53){
firef(-1);
firef(1);
}
if(frame==59){
firee(-2);
firee(1);
}
if(frame==65){
firef(-1);
firef(1);
fireg(20);
fireg(70);
fireg(120);
fireg(170);
fireg(220);
fireg(270);
fireg(320);
fireg(370);
firei(-70);
firei(-60);
firei(-50);
firei(-40);
firei(-30);
firei(-80);
firei(-20);
firei(-10);
firei(0);
firei(10);
firei(20);
firei(30);
firei(40);
firei(50);
firei(60);
firei(70);
firei(80);
firei(90);
fireh(-90);
firei(-170);
firei(-160);
firei(-150);
firei(-140);
firei(-130);
firei(-120);
firei(-110);
firei(110);
firei(120);
firei(130);
firei(140);
firei(150);
firei(160);
firei(170);
firei(100);
firei(-100);
}
if(frame==71){
firee(-2);
firee(1);
}
if(frame==77){
firef(-1);
firef(1);
}
if(frame==83){
firee(-2);
firee(1);
}
if(frame==89){
firef(-1);
firef(1);
fireg(20);
fireg(70);
fireg(120);
fireg(170);
fireg(220);
fireg(270);
fireg(320);
fireg(370);
fireh(-70);
fireh(-60);
fireh(-50);
fireh(-40);
fireh(-30);
fireh(-80);
fireh(-20);
fireh(-10);
fireh(0);
fireh(10);
fireh(20);
fireh(30);
fireh(40);
fireh(50);
fireh(60);
fireh(70);
fireh(80);
fireh(90);
fireh(-90);
fireh(-170);
fireh(-160);
fireh(-150);
fireh(-140);
fireh(-130);
fireh(-100);
fireh(-20);
fireh(-10);
fireh(110);
fireh(120);
fireh(130);
fireh(140);
fireh(150);
fireh(160);
fireh(170);
fireh(100);
frame = 39;
}
if(beta==1530){
dicks = 59;
}
if(dicks==60){
CreateShotA(10, 50, 450, 0);
SetShotDataA(10, 0, 0.6, 300, 0.24, 0, 0.6, BLUE03);
SetShotDataA(10, 420, 0.6, 82, 0, 0, 0.6, BLUE03);
FireShot(10);
CreateShotA(11, 400, 450, 0);
SetShotDataA(11, 0, 0.6, 240, -0.24, 0, 0.6, BLUE03);
SetShotDataA(11, 420, 0.6, 98, 0, 0, 0.6, BLUE03);
FireShot(11);
CreateShotA(12, 50, 450, 0);
SetShotDataA(12, 0, 0.6, 290, 0.68, 0, 0.6, BLUE03);
SetShotDataA(12, 300, 0.6, 82, 0, 0, 0.6, BLUE03);
FireShot(12);
CreateShotA(13, 400, 450, 0);
SetShotDataA(13, 0, 0.6, 250, -0.68, 0, 0.6, BLUE03);
SetShotDataA(13, 300, 0.6, 98, 0, 0, 0.6, BLUE03);
FireShot(13);
dicks = 0;
}
if(beta==150){
blue(0);
}
if(beta==380){
blue(0);
}
if(beta==610){
blue(0);
}
if(beta==840){
blue(0);
}
if(beta==1070){
blue(0);
}
if(beta==1300){
blue(0);
}
if(beta==1530){
blue(0);
}
if(beta==1760){
blue(0);
}
if(beta==1920){
blue(0);
}
if(beta==2080){
blue(0);
}
if(beta==2240){
blue(0);
}
if(beta==2380){
blue(0);
}
if(beta==2470){
blue(0);
}
}
@DrawLoop {
SetColor(255,255,255);
SetRenderState(ALPHA);
SetTexture(yukari);
DrawGraphic(GetX(),GetY());
SetGraphicRect(1, 1, 64, 64);
}
@Finalize {
DeleteGraphic(yukari);
}
@BackGround {
}
}
I only got worse as time progressed. HNNNGHHHhhhhhhghhhnn
#TouhouDanmakufu
#Title[Gap God "Black Hole"]
#Text[Oh what]
#BackGround[User(.\PIC\black.png, 1, 1)]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let ImgBoss = "script\ExRumia\ExRumia.png";
let frame = 0;
let radius = 235;
let radius2 = 55;
let speed = 2.1;
let f = 0;
let th = 0;
let th2 = 0;
let th3 = 0;
let th4 = 0;
let i = 0;
let a = 0;
let b = 0;
let c = 0;
let ra = rand_int(0, 119);
let xpos = 0;
let ypos = 0;
//////////////////////Bonus graze points
let bonus = 1;
let bonus2 = 0;
let BS = 0;
let BF = 0;
/////////////////
let r = rand_int(0, 359);
@Initialize {
if(GetPlayerType==REIMU_A){
SetLife(5000);} else { SetLife(6200); }
SetTimer(42);
SetScore(1000000);
MagicCircle(false);
SetEnemyMarker(true);
SetDamageRate(100, 20);
SetInvincibility(150);
SetEnemyMarker(true);
LoadGraphic(ImgBoss);
CutIn(YOUMU, "Gap God "\""Black Hole"\", "", 1, 1, 2, 2);
SetMovePosition02(GetCenterX, GetCenterY, 20);
SetGraphicRect(30, 30, 100, 100);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 0);
frame++;
if(frame==25){
gap(GetX, GetY, 3, 0.05, i + r, PURPLE01, 6, f);
gap(GetX, GetY, 3, 0.05, i + 180 + r, PURPLE01, 6, f);
gap(GetX, GetY, 3, 0.05, i + r + 2, PURPLE01, 6, f);
gap(GetX, GetY, 3, 0.05, i + 180 + r + 2, PURPLE01, 6, f);
gap(GetX, GetY, 3, 0.05, i + r + 4, PURPLE01, 6, f);
gap(GetX, GetY, 3, 0.05, i + 180 + r + 4, PURPLE01, 6, f);
loop(6){
col(GetX + 240*cos(a + b), GetY + 240*sin(a + b), 0, a + b + 180, PURPLE01, 20, f);
b+=60;
}
a+=2;
i+=6;
f++;
frame = 24;
if(f==30){
f = 0;
frame = 30;
}
}
if(frame==60){
radius -= 0.025;
radius2 += 0.03;
f++;
if(f>=100){
CreateShot01(GetX + radius*cos(th + 60 + ra), GetY + radius*sin(th + 60 + ra), speed, th + 240 + ra, BLUE12, 8);
CreateShot01(GetX + radius*cos(th + 180 + ra), GetY + radius*sin(th + 180 + ra), speed, th + ra, BLUE12, 8);
CreateShot01(GetX + radius*cos(th + 300 + ra), GetY + radius*sin(th + 300 + ra), speed, th + 120 + ra, BLUE12, 8);
}
loop(5){
CreateShot01(GetX + (radius + 12)*cos(th3 + c), GetY + (radius + 12)*sin(th3 + c), 2, th3 + c, RED12, 0);
c+=72;
} c = 0;
CreateShot01(GetX + (radius2 + 12)*cos(th3 + 60), GetY + (radius2 + 12)*sin(th3 + 60), 2, th3 + 240, PURPLE04, 0);
CreateShot01(GetX + (radius2 + 12)*cos(th3 + 180), GetY + (radius2 + 12)*sin(th3 + 180), 2, th3, BLUE04, 0);
CreateShot01(GetX + (radius2 + 12)*cos(th3 + 300), GetY + (radius2 + 12)*sin(th3 + 300), 2, th3 + 120, AQUA04, 0);
DeleteEnemyShotImmediatelyInCircle(ALL, GetX, GetY, 5);
speed -= 0.0006;
th += th2;
th2 += th3;
th3 += th4;
th4 += 0.05;
frame = 59;
}
xpos = GetCenterX - GetPlayerX;
ypos = GetCenterY - GetPlayerY;
SetPlayerX(GetPlayerX + (xpos*0.005));
SetPlayerY(GetPlayerY + (ypos*0.005));
yield;
}
@DrawLoop {
SetTexture(ImgBoss);
SetGraphicRect(0,0,64,64);
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
AddScore(BS);
}
task gap(x, y, vi, vf, angle, graphic, delay, frame2){
let obj = Obj_Create(OBJ_SHOT);
Obj_SetPosition(obj, x, y);
Obj_SetAngle(obj, angle);
ObjShot_SetGraphic(obj, graphic);
ObjShot_SetDelay(obj, delay);
ObjShot_SetBombResist(obj, true);
Obj_SetSpeed(obj, vi);
while(! Obj_BeDeleted(obj)){
frame2++;
if(Obj_GetSpeed(obj) > vf){
Obj_SetSpeed(obj, Obj_GetSpeed(obj) - 0.05);
}
if(frame2==100){
Obj_SetSpeed(obj, 0.03);
}
yield;
}
}
task col(x, y, vi, angle, graphic, delay, frame2){
let obj = Obj_Create(OBJ_SHOT);
Obj_SetPosition(obj, x, y);
Obj_SetAngle(obj, angle);
ObjShot_SetGraphic(obj, graphic);
ObjShot_SetDelay(obj, delay);
ObjShot_SetBombResist(obj, true);
Obj_SetSpeed(obj, vi);
while(! Obj_BeDeleted(obj)){
frame2++;
if(frame2==100){
Obj_SetSpeed(obj, 0.025);
}
yield;
}
}
}It should be worth noting that the popcorning effect is completely unintentional and I have no idea what is causing it.Oh
Reimu has some pretty cool spellcards
image
image
image
#TouhouDanmakufu #Title[Integral Test] #Player[FREE] #ScriptVersion[2] script_enemy_main {let OhMyGodWhatIsThisVariableIDontEven = -120;let WhyAreThereSoManyLongVariableNamesInHere = 0;let NeedlesslyComplicatedVariableNamesAreFun = 0; @Initialize{SetLife(3000);SetScore(5000000);SetMovePosition03(GetCenterX, GetCenterY, 20, 5)} @MainLoop{SetCollisionA(GetX, GetY, 48);SetCollisionB(GetX, GetY, 32);if(OhMyGodWhatIsThisVariableIDontEven%5==0 && OhMyGodWhatIsThisVariableIDontEven>0){NeedlesslyComplicatedVariableNamesAreFun = integral(-5, sin(OhMyGodWhatIsThisVariableIDontEven), 64, "cos(x)")*4-20.2;let WhyWouldYouDoThisOhGod = absolute(NeedlesslyComplicatedVariableNamesAreFun);;if(WhyWouldYouDoThisOhGod<0.5){WhyWouldYouDoThisOhGod = 0.5}CreateShot01(GetX+cos(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 60+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 120+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 180+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 240+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);CreateShot01(GetX+cos(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+170, BLUE23, 30);CreateShot01(GetX+cos(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+180, WHITE23, 30);CreateShot01(GetX+cos(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, GetY+sin(300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere)*100, WhyWouldYouDoThisOhGod, 300+NeedlesslyComplicatedVariableNamesAreFun*60+WhyAreThereSoManyLongVariableNamesInHere+190, BLUE23, 30);WhyAreThereSoManyLongVariableNamesInHere = WhyAreThereSoManyLongVariableNamesInHere + 100}OhMyGodWhatIsThisVariableIDontEven = OhMyGodWhatIsThisVariableIDontEven + 1}@DrawLoop {}@Finalize {}}#TouhouDanmakufu
#Title[Rainbow Phasing Bullets]
#Text[Taste the rainbow.]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\ExRumia.png";
let frame = 0;
@Initialize{
SetLife(3000);
SetTimer(600);
SetScore(350000);
SetInvincibility(30);
SetX(GetCenterX);
SetY(GetClipMinY+120);
LoadGraphic(imgBoss);
}
@MainLoop{
SetCollisionA(GetX,GetY,32);
SetCollisionB(GetX,GetY,16);
if(frame%30==29){
let randomAngle = rand(0, 360);
ascent(i in 0..18){
PsychoShotLeft(randomAngle+i*20, WHITE11, 10);
PsychoShotRight(randomAngle+i*20, WHITE11, 10);
}
}
yield;
frame++;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(64,1,127,64);
SetGraphicScale(01,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@BackGround{
}
@Finalize{
DeleteGraphic(imgBoss);
}
task PsychoShotLeft(angle, graphic, delay){
let obj = ColorChangeShot(GetX, GetY, 5, angle, graphic, delay);
loop(60){
Obj_SetSpeed(obj, Obj_GetSpeed(obj)-5/90);
Obj_SetAngle(obj, Obj_GetAngle(obj)+3);
yield;
}
loop(30){yield;}
Obj_SetSpeed(obj, 3);
Obj_SetAngle(obj, Obj_GetAngle(obj)+80);
}
task PsychoShotRight(angle, graphic, delay){
let obj = ColorChangeShot(GetX, GetY, 5, angle, graphic, delay);
loop(60){
Obj_SetSpeed(obj, Obj_GetSpeed(obj)-5/90);
Obj_SetAngle(obj, Obj_GetAngle(obj)-3);
yield;
}
loop(30){yield;}
Obj_SetSpeed(obj, 3);
Obj_SetAngle(obj, Obj_GetAngle(obj)-80);
}
function ColorChangeShot(x, y, speed, angle, graphic, delay){
let parent = Obj_Create(OBJ_SHOT);
Obj_SetPosition(parent, x, y);
Obj_SetSpeed(parent, speed);
Obj_SetAngle(parent, angle);
Obj_SetAlpha(parent, 0);
ObjShot_SetGraphic(parent, graphic);
ObjShot_SetDelay(parent, delay);
ColorChangeShotParent(parent, graphic, delay);
return parent;
}
task ColorChangeShotParent(id, graphic, delay){
loop(delay){yield;}
let red = 255;
let green = 0;
let blue = 0;
while(!Obj_BeDeleted(id)){
loop(51){
green+=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
red-=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
blue+=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
green-=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
red+=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(51){
blue-=5;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
yield;
}
}
task ColorChangeShotChild(x, y, angle, r, g, b, graphic){
SetShotColor(r, g, b);
let child = Obj_Create(OBJ_SHOT);
Obj_SetPosition(child, x, y);
Obj_SetAngle(child, angle);
Obj_SetSpeed(child, 0);
ObjShot_SetGraphic(child, graphic);
ObjShot_SetDelay(child, 0);
Obj_SetCollisionToPlayer(child, false);
yield;
Obj_Delete(child);
}
}#TouhouDanmakufu
#Title[Mokou wishes she could do this.]
#Text[lol whut]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\ExRumia.png";
@Initialize{
SetLife(10000);
SetTimer(600);
SetScore(350000);
SetInvincibility(30);
SetMovePosition01(GetCenterX,GetCenterY,5);
LoadGraphic(imgBoss);
CutIn(YOUMU,"Fuck sign: sr. red bsns",NULL,0,0,0,0);
mainTask;
}
@MainLoop{
SetCollisionA(GetX,GetY,32);
SetCollisionB(GetX,GetY,16);
yield;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(64,1,127,64);
SetGraphicScale(01,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@BackGround{
SetTexture(NULL);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(0,0,1024,1024);
SetGraphicScale(1,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetCenterX,GetCenterY);
}
@Finalize{
DeleteGraphic(imgBoss);
}
task mainTask{
yield;
mainFire;
secondFire;
movement;
}
task movement{
SetMovePosition01(GetCenterX,120,5);
yield;
}
task mainFire{
let count = 0;
loop{
spock(GetX,GetY,1,sin(count)*rand(30,70)+90,RED31,0);
count += 10;
wait(1);
yield;
}
}
task secondFire{
loop{
CreateShot01(GetX,GetY,1,180+rand(-10,10),RED03,0);
CreateShot01(GetX,GetY,1,0+rand(-10,10),RED03,0);
CreateShot01(GetX,GetY,1,180+rand(0,20),RED03,0);
CreateShot01(GetX,GetY,1,0+rand(0,-20),RED03,0);
wait(45);
yield;
}
}
task spock(x,y,v,dir,graphic,delay){
let obj = Obj_Create(OBJ_SHOT);
Obj_SetPosition(obj,x,y);
Obj_SetSpeed(obj,v);
Obj_SetAngle(obj,dir);
ObjShot_SetGraphic(obj,graphic);
ObjShot_SetDelay(obj,delay);
ObjShot_SetBombResist(obj,true);
while(!Obj_BeDeleted(obj)){
if(Obj_GetY(obj) > GetClipMaxY){
loop(26){CreateShot01(Obj_GetX(obj),Obj_GetY(obj),1,dir,RED31,0); dir+=360/26;}
Obj_Delete(obj);
}
yield;
}
}
function wait(w){
loop(w){yield;}
}
}
This one, although the pattern is simple, has a really weird effect. Too bad it's not practical to use this function in a real pattern cause of how much processing power it eats up. :V
#TouhouDanmakufu
#Title[Rainbow Phasing Bullets]
#Text[Taste the rainbow.]
#Player[FREE]
#BackGround[User()]
#ScriptVersion[2]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let imgBoss = CSD ~ "img\ExRumia.png";
let frame = 0;
@Initialize{
SetLife(3000);
SetTimer(600);
SetScore(350000);
SetInvincibility(30);
SetX(GetCenterX);
SetY(GetClipMinY+120);
LoadGraphic(imgBoss);
}
@MainLoop{
SetCollisionA(GetX,GetY,32);
SetCollisionB(GetX,GetY,16);
if(frame%30==29){
let randomAngle = rand(0, 360);
ascent(i in 0..36){
PsychoShotLeft(randomAngle+i*10, WHITE12, 0);
PsychoShotRight(randomAngle+i*10, WHITE12, 0);
}
}
yield;
frame++;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicRect(64,1,127,64);
SetGraphicScale(01,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetX,GetY);
}
@Finalize{
DeleteGraphic(imgBoss);
}
task PsychoShotLeft(angle, graphic, delay){
let obj = ColorChangeShot(GetX, GetY, 4, angle, graphic, delay);
loop(60){
Obj_SetSpeed(obj, Obj_GetSpeed(obj)-5/90);
Obj_SetAngle(obj, Obj_GetAngle(obj)+3);
yield;
}
loop(30){yield;}
Obj_SetSpeed(obj, 3);
// Obj_SetAngle(obj, Obj_GetAngle(obj)+110);
loop(60){
Obj_SetAngle(obj, Obj_GetAngle(obj)-4);
yield;
}
}
task PsychoShotRight(angle, graphic, delay){
let obj = ColorChangeShot(GetX, GetY, 4, angle, graphic, delay);
loop(60){
Obj_SetSpeed(obj, Obj_GetSpeed(obj)-5/90);
Obj_SetAngle(obj, Obj_GetAngle(obj)-3);
yield;
}
loop(30){yield;}
Obj_SetSpeed(obj, 3);
// Obj_SetAngle(obj, Obj_GetAngle(obj)-110);
loop(60){
Obj_SetAngle(obj, Obj_GetAngle(obj)+4);
yield;
}
}
function ColorChangeShot(x, y, speed, angle, graphic, delay){
let parent = Obj_Create(OBJ_SHOT);
Obj_SetPosition(parent, x, y);
Obj_SetSpeed(parent, speed);
Obj_SetAngle(parent, angle);
Obj_SetAlpha(parent, 0);
ObjShot_SetGraphic(parent, graphic);
ObjShot_SetDelay(parent, delay);
ColorChangeShotParent(parent, graphic, delay);
return parent;
}
task ColorChangeShotParent(id, graphic, delay){
loop(delay){yield;}
let red = 255;
let green = 0;
let blue = 0;
while(!Obj_BeDeleted(id)){
loop(12){
green+=20;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(12){
red-=20;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(12){
blue+=20;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(12){
green-=20;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(12){
red+=20;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
loop(12){
blue-=20;
ColorChangeShotChild(Obj_GetX(id), Obj_GetY(id), Obj_GetAngle(id), red, green, blue, graphic);
yield;
}
yield;
}
}
task ColorChangeShotChild(x, y, angle, r, g, b, graphic){
SetShotColor(r, g, b);
let child = Obj_Create(OBJ_SHOT);
Obj_SetPosition(child, x, y);
Obj_SetAngle(child, angle);
Obj_SetSpeed(child, 0);
ObjShot_SetGraphic(child, graphic);
ObjShot_SetDelay(child, 0);
Obj_SetCollisionToPlayer(child, false);
yield;
Obj_Delete(child);
}
}
#TouhouDanmakufu
#Title[!!!!!! !!!!]
#Text[!!!!]
#Image[]
#BackGround[IceMountain]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let frame = -300;
let BossImage = "script\img\ExRumia.png";
let bossname = "!!!!!!! !!!!!!";
let Spell = 0;
let SpellName = "!!!「!!」";
@Initialize {
SetLife(630); SetDamageRate(12, 5); SetTimer(103);
SetEnemyMarker(true); MagicCircle(true); SetInvincibility(180);
LoadGraphic(BossImage);
CutIn(YOUMU, SpellName, "", 0, 0, 0, 0); SetScore(12000000);
LoadGraphic(BossImage);
TMain;
SetEffectForZeroLife(60, 55, 3); //LastSpell;
SetShotAutoDeleteClip(200, 200, 200, 200);
}
@MainLoop {
if(Spell <= 1) {
SetCollisionA(GetX, GetY, 36); SetCollisionB(GetX, GetY, 10);
}
yield;
}
let animation = 0;
@DrawLoop {
SetFontColor(255, 255, 255, 255, 128, 0);
DrawText(bossname, 40, 36, 12, 255);
SetTexture(BossImage);
animation++; if(animation==600){animation=0;}
if(GetSpeedX()==0){
if(animation<=300){ SetGraphicRect(64,1,127,64); }
else if(animation>300 && animation<=600){ SetGraphicRect(0,1,63,64); }
}
else if(GetSpeedX()>0){SetGraphicRect(192,1,255,64);}
else if(GetSpeedX()<0){SetGraphicRect(128,1,191,64);}
SetGraphicAngle(0, 0, 0);
SetGraphicScale(1, 1);
SetRenderState(ALPHA);
SetAlpha(255);
SetColor(255, 255, 255);
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(BossImage);
}
task TMain {
SetMovePosition02(GetCenterX, GetClipMinY+100, 20);
loop(60){yield;}
Concentration01(120); PlaySE("se\se_ch00.wav");
loop(120){yield;}
move;
attack1; attack2; attack3;
}
task move {
let mf = 5;
loop {
SetMovePosition02(GetCenterX+rand(-200, 200), GetClipMinY+100+rand(-75, 175), mf);
loop(mf) { yield; }
}
}
task attack1 {
let num = 20; let a = 0;
loop {
loop(num) { CreateShot01(GetX, GetY, 7, a, WHITE02, 10); a+=360/num; }
a+=14;
loop(5) { yield; }
}
}
task attack2 {
let num = 30; let a = 0;
loop {
loop(num) { CreateShot01(GetX, GetY, 10, a, WHITE01, 10); a+=360/num; }
a-=17;
loop(9){ yield; }
}
}
task attack3 {
let num = 5; let a = 0;
loop {
loop(num) { CreateShot01(GetX, GetY, 10, a, ORANGE03, 10); a+=360/num; }
a-=103;
loop(90){ yield; }
}
}
}
#TouhouDanmakufu
#Title[China's Punch "Time To Revive The Color"]
#Text[Test script]
#BackGround[User(.\black.png, 1, 1)]
#BGM[script/st6boss2.wav]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let ImgBoss = "script\img\ExRumia.png";
let count = -120;
let SMT = 0;
let fire = 0;
@Initialize {
SetLife(400);
SetDamageRate(10, 20);
SetTimer(90);
SetInvincibility( 200 );
LoadGraphic(ImgBoss);
SetScore(1000000);
SetMovePosition02(GetCenterX, GetCenterY-120, 120);
CutIn(YOUMU, "Broken Border "\""This Time, It Wasn't Yukari's Fault"\", "", 0, 0, 0, 0);
LoadUserShotData("\lib\SHOT_REPLACE\shot_All.dnh");
SetGraphicRect(0, 0, 64, 64);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 16);
if ((count == 0)){
particle;
Red;
}
count++;
SMT++;
yield;
}
@DrawLoop {
SetTexture(ImgBoss);
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(ImgBoss);
}
task particle{
let b = 180;
let bup = 4;
let reverse = 0;
let lrar = 0;
let kput = 4;
let krar = 90;
let Length = 400;
yield;
let x = 2.3;
let n = 0;
let q = 0;
let RollerX;
let RollerY;
let random;
loop{
PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav");
ascent(a in 1..kput+1){
RollerX = GetCenterX + Length * cos((a*krar+b)+1*(360/2));
RollerY = GetCenterY + Length * sin((a*krar+b)+1*(360/2));
CreateLaserA(1, RollerX, RollerY, 800, 30, 159, 40);
SetLaserDataA(1, 0, (a*krar+b)-count*2, 0, 0, 0, 0);
SetShotKillTime(1, 80);
FireShot(1);
}
if (reverse == 0){
if (bup > -0.7){
bup += 0;
}
else{
reverse++;
}
}
else{
if (bup > 120){
bup -= 0;
}
else{
reverse--;
}
}
b += bup;
if (Length > -200){
Length -= 0;
}
loop(5){
yield;
}
}
}
task Red{
let b = 180;
let bup = 4.2;
let reverse = 0;
let lrar = 0;
let kput = 50;
let krar = 360/kput;
let Length = 400;
yield;
let x = 2.3;
let n = 0;
let q = 0;
let RollerX;
let RollerY;
let random;
loop{
PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav");
ascent(a in 1..kput+1){
CreateShotA(1, GetX, GetY, 10);
SetShotDataA(1, 0, 2, (a*krar+b), 0, 0, 0, 39);
SetShotDataA_XY(1, 0, 0, 0, 0, 0, 0, 0, 39);
SetShotKillTime(1, 360);
FireShot(1);
AddShot(a*3, 3, 17, 0);
}
if (reverse == 0){
if (bup > -0.7){
bup += 0;
}
else{
reverse++;
}
}
else{
if (bup > 120){
bup -= 0;
}
else{
reverse--;
}
}
b += bup;
if (Length > -200){
Length -= 0;
}
loop(40){
yield;
}
}
}
task TheshotUp(x, y, v, angle, graphic, delay){
let obj = Obj_Create(OBJ_SHOT);
let a = 0;
let b = 0;
let dir = angle;
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);
while (!Obj_BeDeleted(obj)){
if (count == 160){
Obj_SetAutoDelete(obj, true);
Obj_SetSpeed(obj, v+2);
}
a++;
b++;
yield;
}
}
task TheshotCircle(x, y, v, angle, graphic, delay){
let obj = Obj_Create(OBJ_SHOT);
let a = 0;
let b = 0;
let dir = angle;
Obj_SetX(obj, x);
Obj_SetY(obj, y);
Obj_SetSpeed(obj, v);
Obj_SetAngle(obj, angle);
ObjShot_SetGraphic(obj, graphic);
ObjShot_SetDelay(obj, delay);
ObjShot_SetBombResist(obj, true);
while (!Obj_BeDeleted(obj)){
if (a == 120){
Obj_SetSpeed(obj, v*8);
}
a++;
b++;
yield;
}
}
}
#TouhouDanmakufu
#Title[Shikieiki]
#Text[just a tutorial to present it]
#Player[FREE]
#ScriptVersion[2]
#BGM[.\bgm\Fate.mp3"]
#PlayerLevel[Normal]
script_enemy_main{
let CSD = GetCurrentScriptDirectory;
let ShotData = CSD ~ "system\supershot2.txt";
let imgBoss = CSD ~ "system\boss21.png";
let cut = CSD ~ "system\slpl13.png";
let bg = CSD ~ "system\judgment.png";
let lay = CSD ~ "system\cdbg21b.png";
let f = 0;
let f2 = 0;
let attack = 0;
let b = 0;
@Initialize{
SetLife(1000);
SetTimer(60);
SetScore(100000);
SetMovePosition01(GetX,120,5);
LoadGraphic(imgBoss);
LoadGraphic(cut);
wait(60);
LoadGraphic(bg);
LoadGraphic(lay);
LoadUserShotData(ShotData);
CutIn(YOUMU,"Judgement: "\""Final Verdict""\",cut,0,0,256,512);
mainTask;
}
@MainLoop{
//SetCollisionA(GetX,GetY,32);
//SetCollisionB(GetX,GetY,16);
yield;
}
@DrawLoop{
SetTexture(imgBoss);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicScale(1.2,1.2);
SetGraphicAngle(0,0,0);
if(int(GetSpeedX())==0){
if(attack==0){
if(f<10){SetGraphicRect(0,0,64,80);}
if(f>=10 && f<20){SetGraphicRect(64,0,128,80);}
if(f>=20 && f<30){SetGraphicRect(128,0,192,80);}
if(f>=30 && f<40){SetGraphicRect(192,0,256,80);}
}
if(attack==1){
SetGraphicRect(0,160,64,240);
}
f2 = 0;
}
if(GetSpeedX()>0){
if(attack==0){
if(f2<5){SetGraphicRect(0,80,64,160);}
if(f2>=5 && f<10){SetGraphicRect(64,80,128,160);}
if(f2>=10 && f<15){SetGraphicRect(128,80,192,160);}
if(f2>=15){SetGraphicRect(192,80,256,160);}
} f2++;
if(attack==1){
SetSpeed(0);
SetGraphicRect(0,160,64,240);
}
}
if(GetSpeedX()<0){
if(attack==0){
SetGraphicAngle(180,0,0);
if(f2<5){SetGraphicRect(0,80,64,160);}
if(f2>=5 && f<10){SetGraphicRect(64,80,128,160);}
if(f2>=10 && f<15){SetGraphicRect(128,80,192,160);}
if(f2>=15){SetGraphicRect(192,80,256,160);}
f2++;
}
if(attack==1){
SetSpeed(0);
SetGraphicRect(0,160,64,240);
}
}
DrawGraphic(GetX,GetY);
f++;
if(f==40){f = 0; }
DrawText("Shikieiki Yamaxanadu",35,30,12,255);
}
@BackGround{
SetTexture(bg);
SetRenderState(ALPHA);
SetAlpha(135);
SetGraphicRect(0,0,512,512);
SetGraphicScale(1,1);
SetGraphicAngle(0,0,0);
DrawGraphic(GetCenterX,GetCenterY);
SetTexture(lay);
SetGraphicRect(0,0 + b,448, 480 + b);
SetRenderState(ALPHA);
SetAlpha(255);
SetGraphicScale(1,1);
DrawGraphic(224, 240);
b++;
}
@Finalize{
if(GotSpellCardBonus){
PlaySE(CSD ~ "SFX\se_cardget.wav");
}
DeleteGraphic(imgBoss);
DeleteGraphic(cut);
DeleteGraphic(bg);
}
// main task, activates stuff.
task mainTask{
yield;
wait(75);
fire;
fire2;
}
task fire{
loop{
if(GetTimer<31){
PlaySE(CSD~"sfx\se_power0.wav");
Concentration01(120);
wait(50);
attack = 1;
wait(10);
//CreateLaser01(GetX, GetY, 2, GetAngleToPlayer, 200, 16, RED01, 20);
CreateLaserA(1, GetEnemyX, GetEnemyY, 700, 80, PURPLE03, 60);
SetLaserDataA(1, 0, GetAngleToPlayer, 0, 0, 0, 0);
CreateLaserA(2, GetEnemyX, GetEnemyY, 600, 20, BLUE01, 60);
SetLaserDataA(2, 0, GetAngleToPlayer-60, 0, 0, 0, 0);
CreateLaserA(3, GetEnemyX, GetEnemyY, 600, 20, BLUE01, 60);
SetLaserDataA(3, 0, GetAngleToPlayer-90, 0, 0, 0, 0);
CreateLaserA(4, GetEnemyX, GetEnemyY, 600, 20, BLUE01, 60);
SetLaserDataA(4, 0, GetAngleToPlayer-120, 0, 0, 0, 0);
CreateLaserA(5, GetEnemyX, GetEnemyY, 600, 20, BLUE01, 60);
SetLaserDataA(5, 0, GetAngleToPlayer-145, 0, 0, 0, 0);
CreateLaserA(6, GetEnemyX, GetEnemyY, 600, 20, RED01, 60);
SetLaserDataA(6, 0, GetAngleToPlayer+145, 0, 0, 0, 0);
CreateLaserA(7, GetEnemyX, GetEnemyY, 600, 20, RED01, 60);
SetLaserDataA(7, 0, GetAngleToPlayer+120, 0, 0, 0, 0);
CreateLaserA(8, GetEnemyX, GetEnemyY, 600, 20, RED01, 60);
SetLaserDataA(8, 0, GetAngleToPlayer+90, 0, 0, 0, 0);
CreateLaserA(9, GetEnemyX, GetEnemyY, 600, 20, RED01, 60);
SetLaserDataA(9, 0, GetAngleToPlayer+60, 0, 0, 0, 0);
SetShotKillTime(1,120);
SetShotKillTime(2,120);
SetShotKillTime(3,120);
SetShotKillTime(4,120);
SetShotKillTime(5,120);
SetShotKillTime(6,120);
SetShotKillTime(7,120);
SetShotKillTime(8,120);
SetShotKillTime(9,120);
PlaySE(CSD~"sfx\se_lazer00.wav");
FireShot(1);
FireShot(2);
FireShot(3);
FireShot(4);
FireShot(5);
FireShot(6);
FireShot(7);
FireShot(8);
FireShot(9);
wait(120);
attack = 0;
wait(60);
yield;
} else {
yield;
}
}
yield;
}
task fire2{
attack = 1;
wait(30);
loop{
if(GetTimer==51){
PlaySE(CSD~"sfx\se_power1.wav");
Concentration01(120);
wait(10);
}
if(GetTimer==31){
PlaySE(CSD~"sfx\se_power1.wav");
Concentration01(120);
wait(10);
}
if(GetTimer==21){
PlaySE(CSD~"sfx\se_power1.wav");
Concentration01(120);
wait(10);
}
if(GetTimer>50){
PlaySE(CSD~"sfx\thump.wav");
CreateShot01(rand(5,35),20,2,90,255,50);
CreateShot01(rand(40,65),5,2,90,255,50);
CreateShot01(rand(70,95),20,2,90,255,50);
CreateShot01(rand(100,125),5,2,90,255,50);
CreateShot01(rand(130,155),20,2,90,255,50);
CreateShot01(rand(160,185),5,2,90,255,50);
CreateShot01(rand(190,215),20,2,90,255,50);
CreateShot01(rand(220,245),5,2,90,255,50);
CreateShot01(rand(250,275),20,2,90,255,50);
CreateShot01(rand(280,305),5,2,90,255,50);
CreateShot01(rand(310,335),20,2,90,255,50);
CreateShot01(rand(340,365),5,2,90,255,50);
CreateShot01(rand(370,395),20,2,90,255,50);
CreateShot01(rand(400,425),5,2,90,255,50);
wait(60);
} else if (GetTimer>40){
PlaySE(CSD~"sfx\thump.wav");
CreateShot01(rand(5,35),20,3,90,255,50);
CreateShot01(rand(40,65),5,3,90,255,50);
CreateShot01(rand(70,95),20,3,90,255,50);
CreateShot01(rand(100,125),5,3,90,255,50);
CreateShot01(rand(130,155),20,3,90,255,50);
CreateShot01(rand(160,185),5,3,90,255,50);
CreateShot01(rand(190,215),20,3,90,255,50);
CreateShot01(rand(220,245),5,3,90,255,50);
CreateShot01(rand(250,275),20,3,90,255,50);
CreateShot01(rand(280,305),5,3,90,255,50);
CreateShot01(rand(310,335),20,3,90,255,50);
CreateShot01(rand(340,365),5,3,90,255,50);
CreateShot01(rand(370,395),20,3,90,255,50);
CreateShot01(rand(400,425),5,3,90,255,50);
wait(50);
} else if (GetTimer>30){
PlaySE(CSD~"sfx\thump.wav");
CreateShot01(rand(5,35),20,3,90,255,50);
CreateShot01(rand(40,65),5,3,90,255,50);
CreateShot01(rand(70,95),20,3,90,255,50);
CreateShot01(rand(100,125),5,3,90,255,50);
CreateShot01(rand(130,155),20,3,90,255,50);
CreateShot01(rand(160,185),5,3,90,255,50);
CreateShot01(rand(190,215),20,3,90,255,50);
CreateShot01(rand(220,245),5,3,90,255,50);
CreateShot01(rand(250,275),20,3,90,255,50);
CreateShot01(rand(280,305),5,3,90,255,50);
CreateShot01(rand(310,335),20,3,90,255,50);
CreateShot01(rand(340,365),5,3,90,255,50);
CreateShot01(rand(370,395),20,3,90,255,50);
CreateShot01(rand(400,425),5,3,90,255,50);
wait(40);
} else if (GetTimer>20){
PlaySE(CSD~"sfx\thump.wav");
CreateShot01(rand(5,35),20,4,90,255,50);
CreateShot01(rand(40,65),5,4,90,255,50);
CreateShot01(rand(70,95),20,4,90,255,50);
CreateShot01(rand(100,125),5,4,90,255,50);
CreateShot01(rand(130,155),20,4,90,255,50);
CreateShot01(rand(160,185),5,4,90,255,50);
CreateShot01(rand(190,215),20,4,90,255,50);
CreateShot01(rand(220,245),5,4,90,255,50);
CreateShot01(rand(250,275),20,4,90,255,50);
CreateShot01(rand(280,305),5,4,90,255,50);
CreateShot01(rand(310,335),20,4,90,255,50);
CreateShot01(rand(340,365),5,4,90,255,50);
CreateShot01(rand(370,395),20,4,90,255,50);
CreateShot01(rand(400,425),5,4,90,255,50);
wait(30);
} else if (GetTimer>10){
PlaySE(CSD~"sfx\thump.wav");
CreateShot01(rand(5,35),20,4,90,255,50);
CreateShot01(rand(40,65),5,4,90,255,50);
CreateShot01(rand(70,95),20,4,90,255,50);
CreateShot01(rand(100,125),5,4,90,255,50);
CreateShot01(rand(130,155),20,4,90,255,50);
CreateShot01(rand(160,185),5,4,90,255,50);
CreateShot01(rand(190,215),20,4,90,255,50);
CreateShot01(rand(220,245),5,4,90,255,50);
CreateShot01(rand(250,275),20,4,90,255,50);
CreateShot01(rand(280,305),5,4,90,255,50);
CreateShot01(rand(310,335),20,4,90,255,50);
CreateShot01(rand(340,365),5,4,90,255,50);
CreateShot01(rand(370,395),20,4,90,255,50);
CreateShot01(rand(400,425),5,4,90,255,50);
wait(20);
} else {
PlaySE(CSD~"sfx\thump.wav");
CreateShot01(rand(5,35),20,4,90,255,50);
CreateShot01(rand(40,65),5,4,90,255,50);
CreateShot01(rand(70,95),20,4,90,255,50);
CreateShot01(rand(100,125),5,4,90,255,50);
CreateShot01(rand(130,155),20,4,90,255,50);
CreateShot01(rand(160,185),5,4,90,255,50);
CreateShot01(rand(190,215),20,4,90,255,50);
CreateShot01(rand(220,245),5,4,90,255,50);
CreateShot01(rand(250,275),20,4,90,255,50);
CreateShot01(rand(280,305),5,4,90,255,50);
CreateShot01(rand(310,335),20,4,90,255,50);
CreateShot01(rand(340,365),5,4,90,255,50);
CreateShot01(rand(370,395),20,4,90,255,50);
CreateShot01(rand(400,425),5,4,90,255,50);
wait(15);
}
}
wait = 60;
attack = 0;
yield;
}
// wait function
function wait(w){
loop(w){yield;}
}
}
Not my best, but here, have some shit:Finally :V
Naut's Arbitrary Scripts (http://www.megaupload.com/?d=ETVK820Y)
Includes Cold Pizza (http://www.youtube.com/watch?v=LXktr7MLicY&fmt=22), Hong Meiling's Warmup (http://www.youtube.com/watch?v=pUBREJlnM6Y&fmt=22) and Yuka Kazami's Extra Battle v2 (http://www.youtube.com/watch?v=as5-ixAKx0o&fmt=22).
Edit: Changed the link because mediafire is being ass lately.
EDIT => Update : Download Sanae-like danamku here (http://www.mediafire.com/?uiqgyznqqnj) : (after you do whatever you want with the bullet, inculdingNeeds more sin/cos action :Vrapegood patterns)
There is a glitch where I couldn't shoot after her timefreeze card.Which timefreeze card? The red one or the blue one?
Also those spellcards are way too hard :/
They look odd:V I guess they really do.
FPS slowdownIt seems the FPS just drops to 57 on this 1-year-old comp of mine...
+: Why is everyone commenting on Ansatsusya and not Reika? :OBecause the former is in the filename, not the latter, so it's assume that you only want comments on the former. :P
#TouhouDanmakufu
#Title[Ansatusya 8S]
#Text[Reikisoku no Ansatusya's 8th Spell]
#Image[]
#BackGround[IceMountain]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let BossImage = "script\img\ExRumia.png";
let CutInGraphic = GetCurrentScriptDirectory~"img\ansatucut.png";
let bossname = "Reikisoku no Ansatusya";
let Spell = 1;
let SpellName = "「Burning Red Aura of Phoenix」";
#include_function ".\include\cutin\cutin.txt";
@Initialize {
if(GetCommonDataDefault("CollectLifePiece", false)) {
CreateEnemyFromFile(GetCurrentScriptDirectory~"point.txt", GetX, GetY, 0, 0, 0);
DeleteCommonData("CollectLifePiece");
}
SetLife(630); SetDamageRate(12, 0); SetTimer(93);
SetEnemyMarker(true); MagicCircle(true); SetInvincibility(180);
LoadGraphic(BossImage);
SetText(SpellName); SetScore(10000000); cutin(CutInGraphic, 0, 0, 275, 275); //SetDurableSpellCard;
TMain;
SetEffectForZeroLife(60, 55, 3); //LastSpell;
SetShotAutoDeleteClip(200, 200, 200, 200);
}
@MainLoop {
if(OnBomb) { SetDamageRate(0, 0); } else { SetDamageRate(12, 0); if(Spell <= 1) { SetCollisionA(GetX, GetY, 36); SetCollisionB(GetX, GetY, 10); } }
yield;
}
let animation = 0;
@DrawLoop {
SetFontColor(255, 255, 255, 155, 0, 155);
DrawText(bossname, 40, 36, 12, 255);
SetTexture(BossImage);
animation++; if(animation==600){animation=0;}
if(GetSpeedX()==0){
if(animation<=300){ SetGraphicRect(64,1,127,64); }
else if(animation>300 && animation<=600){ SetGraphicRect(0,1,63,64); }
}
else if(GetSpeedX()>0){SetGraphicRect(192,1,255,64);}
else if(GetSpeedX()<0){SetGraphicRect(128,1,191,64);}
SetGraphicAngle(0, 0, 0);
SetGraphicScale(1, 1);
SetRenderState(ALPHA);
SetAlpha(255);
SetColor(255, 255, 255);
if(!OnBomb) { DrawGraphic(GetX, GetY); }
}
@Finalize {
if(GotSpellCardBonus) {
let su = 20;
loop(10) { CreateItem(ITEM_SCORE, GetX+rand(-su, su), GetY+rand(-su, su)); }
}
if(GetMissCountInThisSpell==0) {
PlaySE("se\se_bonus2.wav");
SetCommonData("CollectLifePiece", true);
} else { SetCommonData("CollectLifePiece", false); }
DeleteGraphic(BossImage);
}
task TMain {
SetMovePosition02(GetCenterX, GetCenterY-100, 20);
loop(60){yield;}
Concentration01(120); PlaySE("se\se_ch00.wav");
loop(120){yield;}
attack1;
loop {
MotionBlurEx(SHOT, 3, 200, ALPHA); yield;
}
}
function mokou(x, y, v, angle) {
ascent(i in 1..5) { CreateShot02(x+(i*10)*cos(angle), y+(i*10)*sin(angle), 0, angle, 1/10, v, RED01, 10); }
ascent(i in 1..7) {
CreateShot02(x+(i*15)*cos(angle+115), y+(i*15)*sin(angle+115), 0, angle, 1/10, v, RED01, 10);
CreateShot02(x+(i*15)*cos(angle-115), y+(i*15)*sin(angle-115), 0, angle, 1/10, v, RED01, 10);
}
ascent(i in 1..4) {
CreateShot02(x+(15*2)*cos(angle+115)+(i*15)*cos(angle+145), y+(15*2)*sin(angle+115)+(i*15)*sin(angle+145), 0, angle, 1/10, v, RED01, 10);
CreateShot02(x+(15*2)*cos(angle-115)+(i*15)*cos(angle-145), y+(15*2)*sin(angle-115)+(i*15)*sin(angle-145), 0, angle, 1/10, v, RED01, 10);
}
ascent(i in 1..4) {
CreateShot02(x+(15*2)*cos(angle+115)+(i*15)*cos(angle+145)+(i*7)*cos(angle+200), y+(15*2)*sin(angle+115)+(i*15)*sin(angle+145)+(i*7)*sin(angle+200), 0, angle, 1/10, v, RED01, 10);
CreateShot02(x+(15*2)*cos(angle-115)+(i*15)*cos(angle-145)+(i*7)*cos(angle-200), y+(15*2)*sin(angle-115)+(i*15)*sin(angle-145)+(i*7)*sin(angle-200), 0, angle, 1/10, v, RED01, 10);
}
CreateShot02(x+(0)*cos(angle), y+(0)*sin(angle), 0, angle, 1/10, v, RED02, 10);
CreateShot02(x+30*cos(angle), y+30*sin(angle), 0, angle, 1/10, v, RED03, 10);
}
task attack1 {
loop {
loop(3) {
let a = GetAngleToPlayer; let num = 360;
PlaySE("se\se_tan01.wav");
mokou(GetX, GetY, 5, a);
loop(num) { CreateShot01(GetX, GetY, 3+rand(-2, 1), a+rand(-3, 3), RED23, 10); a+=360/num; }
loop(90) { yield; }
}
loop(120) { yield; }
loop(5) {
let a = GetAngleToPlayer;
PlaySE("se\se_tan01.wav");
mokou(GetX, GetY, 5, a);
ascent(i in 0..5) { loop(60) { CreateShot01(GetX, GetY, 3+rand(0, 2), a+i*360/5+rand(-20, 20), RED23, 10); } }
loop(20) { yield; }
}
loop(60) { yield; }
}
}
task attack2 {
loop {
loop(2) {
loop(10) {
let a = GetAngleToPlayer; let num = 40;
PlaySE("se\se_tan01.wav");
mokou(GetX, GetY, 5, a);
loop(num) { CreateShot01(GetX, GetY, 3+rand(-1, 1), a+rand(-3, 3), RED23, 10); a+=360/num; }
loop(10) { yield; }
}
loop(60) { yield; }
}
let b = GetAngleToPlayer; let side = 1;
loop(2) {
loop(10) {
let num = 40;
PlaySE("se\se_tan01.wav");
mokou(GetX, GetY, 5, b);
loop(num) { CreateShot01(GetX, GetY, 3+rand(-1, 1), b+rand(-3, 3), RED23, 10); b+=360/num; }
b+=360/10*side;
loop(5) { yield; }
}
side*=-1;
loop(30) { yield; }
}
}
}
}Is this possible? Does it cause slowdown? (Somewhat.) Just before I go on with making the rest of the boss, I need feedback for this particular spell.#TouhouDanmakufu
#Title[Ansatusya 9S]
#Text[Reikisoku no Ansatusya's 9th Spell]
#Image[]
#BackGround[IceMountain]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let BossImage = "script\img\ExRumia.png";
let CutInGraphic = GetCurrentScriptDirectory~"img\ansatucut.png";
let bossname = "Reikisoku no Ansatusya";
let Spell = 1;
let SpellName = "「Aura Bounded Field -Anger, Jealousy, Peace-」";
@Initialize {
if(GetCommonDataDefault("CollectLifePiece", false)) {
CreateEnemyFromFile(GetCurrentScriptDirectory~"point.txt", GetX, GetY, 0, 0, 0);
DeleteCommonData("CollectLifePiece");
}
SetLife(630); SetDamageRate(0, 0); SetTimer(37);
SetEnemyMarker(true); MagicCircle(true); SetInvincibility(180);
LoadGraphic(BossImage);
SetText(SpellName); SetScore(10000000); SetDurableSpellCard;
TMain;
SetEffectForZeroLife(60, 55, 3); //LastSpell;
SetShotAutoDeleteClip(200, 200, 200, 200);
}
@MainLoop {
if(OnBomb) { SetDamageRate(0, 0); } else { SetDamageRate(0, 0); if(Spell <= 1) { SetCollisionA(GetX, GetY, 536); /*SetCollisionB(GetX, GetY, 10);*/ } }
yield;
}
let animation = 0;
@DrawLoop {
SetFontColor(255, 255, 255, 155, 0, 155);
DrawText(bossname, 40, 36, 12, 255);
SetTexture(BossImage);
animation++; if(animation==600){animation=0;}
if(GetSpeedX()==0){
if(animation<=300){ SetGraphicRect(64,1,127,64); }
else if(animation>300 && animation<=600){ SetGraphicRect(0,1,63,64); }
}
else if(GetSpeedX()>0){SetGraphicRect(192,1,255,64);}
else if(GetSpeedX()<0){SetGraphicRect(128,1,191,64);}
SetGraphicAngle(0, 0, 0);
SetGraphicScale(1, 1);
SetRenderState(ALPHA);
SetAlpha(155);
SetColor(255, 255, 255);
if(!OnBomb) { DrawGraphic(GetX, GetY); }
}
@Finalize {
if(GotSpellCardBonus) {
let su = 20;
loop(10) { CreateItem(ITEM_SCORE, GetX+rand(-su, su), GetY+rand(-su, su)); }
}
if(GetMissCountInThisSpell==0) {
PlaySE("se\se_bonus2.wav");
SetCommonData("CollectLifePiece", true);
} else { SetCommonData("CollectLifePiece", false); }
DeleteGraphic(BossImage);
}
task TMain {
SetMovePosition02(GetCenterX, GetCenterY, 20);
loop(60){yield;}
Concentration01(120); PlaySE("se\se_ch00.wav");
loop(120){yield;}
attack1;
}
let graphic = [RED21, GREEN21, BLUE21, WHITE21];
task attack1 {
let a = 0; let b = 150; let num = 4;
loop(120) {
ascent(i in 0..num) {
CreateShot02(GetX+225*cos(a+i*360/num), GetY+225*sin(a+i*360/num), 0, i*360/num+a+200+b, 1/240, 3, graphic[i], 10);
ascent(j in -5..6) { CreateShot01(GetX+225*cos(a+i*360/num), GetY+225*sin(a+i*360/num), 5, i*360/num+a+j*5, graphic[i], 10); }
}
a+=9.5;
b-=150/75;
loop(1) { yield; }
}
loop(60) {
ascent(i in 0..num) { CreateShot02(GetX+225*cos(a+i*360/num), GetY+225*sin(a+i*360/num), 0, i*360/num+a+180+b, 1/240, 3, graphic[i], 10); }
a+=9.5;
loop(1) { yield; }
}
loop(300) { yield; }
attack2;
}
task attack2 {
let a = 0; let aa = 5; let b = 150; let radius = -120; let num = 4;
loop(180) {
ascent(i in 0..num) { CreateShot02(GetX+radius*cos(a+i*360/num), GetY+radius*sin(a+i*360/num), 0, 180+a+i*360/num+b, 1/180, 3, graphic[i], 10); }
radius+=3; a+=aa; b-=150/90;
loop(1) { yield; }
}
loop(360) { yield; }
attack3;
}
task attack3 {
let a = 0; let b = 300; let radius = 225; let num = 4;
task ap { loop { a+=3; b-=3; yield; } } ap;
loop(300) {
ascent(i in 0..num) {
CreateShot02(GetX+radius*cos(a+i*360/num), GetY+radius*sin(a+i*360/num), 0, a+i*360/num+b, 1/300, 3, graphic[i], 10);
}
loop(1) { yield; }
}
loop(360) { yield; }
attack4;
}
task attack4 {
let a = 0; let b = 300; let radius = 225; let num = 3;
task ap { loop { a-=4; b-=3/2; yield; } } ap;
loop(300) {
ascent(i in 0..num) {
CreateShot02(GetX+radius*cos(a+i*360/num), GetY+radius*sin(a+i*360/num), 5, a+i*360/num+b, -1/30, -5, graphic[2], 10);
}
loop(1) { yield; }
}
loop(360) { yield; }
}
}
ARG!! I CAN NEVER CAPTURE THIS SPELL CARD!! But it's so fun and addictive to play! ^^ But I know somewhere in the world, there will be a first person to capture this spell... And it won't be me... Now I'm just gonna curl up in this corner and whimper...#TouhouDanmakufu
#Title[Ansatusya 10S]
#Text[Reikisoku no Ansatusya's 10th Spell]
#Image[]
#BackGround[IceMountain]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let BossImage = "script\img\ExRumia.png";
let CutInGraphic = GetCurrentScriptDirectory~"img\ansatucut.png";
let bossname = "Reikisoku no Ansatusya";
let Spell = 1;
let SpellName = "「Wave Guiding Hero」";
//include_function ".\include\cutin\cutin.txt";
@Initialize {
if(GetCommonDataDefault("CollectLifePiece", false)) {
CreateEnemyFromFile(GetCurrentScriptDirectory~"point.txt", GetX, GetY, 0, 0, 0);
DeleteCommonData("CollectLifePiece");
}
SetLife(750); SetDamageRate(12, 0); SetTimer(93);
SetEnemyMarker(true); MagicCircle(true); SetInvincibility(420);
LoadGraphic(BossImage);
SetText(SpellName); SetScore(10000000); //cutin(CutInGraphic, 0, 0, 275, 275); //SetDurableSpellCard;
TMain;
SetEffectForZeroLife(60, 55, 3); //LastSpell;
SetShotAutoDeleteClip(200, 200, 200, 200);
}
@MainLoop {
if(OnBomb) { SetDamageRate(0, 0); } else { SetDamageRate(12, 0); if(Spell <= 1) { SetCollisionA(GetX, GetY, 36); SetCollisionB(GetX, GetY, 10); } }
yield;
}
let animation = 0;
@DrawLoop {
SetFontColor(255, 255, 255, 155, 0, 155);
DrawText(bossname, 40, 36, 12, 255);
SetTexture(BossImage);
animation++; if(animation==600){animation=0;}
if(GetSpeedX()==0){
if(animation<=300){ SetGraphicRect(64,1,127,64); }
else if(animation>300 && animation<=600){ SetGraphicRect(0,1,63,64); }
}
else if(GetSpeedX()>0){SetGraphicRect(192,1,255,64);}
else if(GetSpeedX()<0){SetGraphicRect(128,1,191,64);}
SetGraphicAngle(0, 0, 0);
SetGraphicScale(1, 1);
SetRenderState(ALPHA);
SetAlpha(255);
SetColor(255, 255, 255);
if(!OnBomb) { DrawGraphic(GetX, GetY); }
}
@Finalize {
if(GotSpellCardBonus) {
let su = 20;
loop(10) { CreateItem(ITEM_SCORE, GetX+rand(-su, su), GetY+rand(-su, su)); }
}
if(GetMissCountInThisSpell==0) {
PlaySE("se\se_bonus2.wav");
SetCommonData("CollectLifePiece", true);
} else { SetCommonData("CollectLifePiece", false); }
DeleteGraphic(BossImage);
}
task TMain {
SetMovePosition02(GetCenterX, GetCenterY-100, 20);
loop(60){yield;}
loop(3) { Concentration01(120); PlaySE("se\se_ch00.wav"); loop(120){yield;} }
border;
}
let num = 0; let radius = 100; let v = 2;
let a1 = 0; let aa1 = 0; let b1 = 0;
let a2 = 0; let aa2 = 0; let b2 = 0;
let a3 = 0; let aa3 = 0; let b3 = 0;
let a4 = 0; let aa4 = 0; let b4 = 0;
let a5 = 0; let aa5 = 0; let b5 = 0;
task border {
loop {
if(GetEnemyLife <= 750/5*5 && GetTimer > 30) {
num = 1; radius = 100;
PlaySE("se\se_kira01.wav");
loop(num) {
CreateShot01(GetX+radius*cos(a1), GetY+radius*sin(a1), v, a1+b1, RED01, 10);
a1+=360/num;
}
}
if(GetEnemyLife <= 750/5*4 && GetTimer > 30) {
let graphic = [ORANGE12, YELLOW12];
num = 1; radius = 50;
PlaySE("se\se_kira00.wav");
loop(num) {
CreateShot01(GetX+radius*cos(a2), GetY+radius*sin(a2), v, a2+b2, graphic[rand_int(0, 1)], 10);
a2+=360/num;
}
}
if(GetEnemyLife <= 750/5*3 && GetTimer > 30) {
num = 2; radius = 75;
PlaySE("se\se_kira00.wav");
loop(num) {
CreateShot01(GetX+radius*cos(a3), GetY+radius*sin(a3), v, a3+b3, GREEN12, 10);
a3+=360/num;
}
}
if(GetEnemyLife <= 750/5*2 && GetTimer > 30) {
num = 1; radius = 150;
PlaySE("se\se_kira02.wav");
CreateShot01(GetX+radius*cos(a4), GetY+radius*sin(a4), v, a4+b4, AQUA21, 10);
CreateShot01(GetX+radius*cos(a4+180), GetY+radius*sin(a4+180), v, a4+180+b4, BLUE21, 10);
}
if(GetEnemyLife <= 750/5*1 && GetTimer > 30) {
num = 1; radius = 150;
PlaySE("se\se_kira02.wav");
CreateShot01(GetX+radius*cos(a5), GetY+radius*sin(a5), v, a5+b5, PURPLE22, 10);
CreateShot01(GetX+radius*cos(a5+90), GetY+radius*sin(a5+90), v, a5+90+b5, WHITE22, 10);
CreateShot01(GetX+radius*cos(a5-90), GetY+radius*sin(a5-90), v, a5-90+b5, WHITE22, 10);
}
a1+=aa1; aa1+=1/5; b1+=1;
a2+=aa2; aa2+=1/5; b2-=3;
a3+=aa3; aa3+=1/5; b3+=7;
a4+=aa4; aa4-=1/5; b4-=5;
a5+=aa5; aa5-=1/5; b5-=9;
if(a1 >= 360) { a1-=360; } if(aa1 >= 360) { aa1-=360; } if(b1 >= 360) { b1-=360; }
if(a2 >= 360) { a2-=360; } if(aa2 >= 360) { aa2-=360; } if(b2 >= 360) { b2-=360; }
if(a3 >= 360) { a3-=360; } if(aa3 >= 360) { aa3-=360; } if(b3 >= 360) { b3-=360; }
if(a4 >= 360) { a4-=360; } if(aa4 >= 360) { aa4-=360; } if(b4 >= 360) { b4-=360; }
if(a5 >= 360) { a5-=360; } if(aa5 >= 360) { aa5-=360; } if(b5 >= 360) { b5-=360; }
loop(1) { yield; }
}
}
}
If you are not Naut and you try this script, you will cry in horror!