a weird version of "unilateral contact"
for some reason I called unilateral food supply...
anyways, the basics are the ones that count! the bullets do move like they should!
#TouhouDanmakufu
#Title[Taboo "Unilateral Food Supply V2"]
#Text[]
#Image[.\ss.jpg]
#BackGround[IceMountain]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main {
let frame = 0;
let deg = 0;
let rotvar = 0;
let frame2 = 0;
let frame3 = 0;
let frame4 = 0;
let BossImage = GetCurrentScriptDirectory ~ "huhu.gif";
let BossCutIn = GetCurrentScriptDirectory ~ "ss.jpg";
let Back = GetCurrentScriptDirectory ~ "Wormhole.jpg";
LoadSE(GetCurrentScriptDirectory ~ "tan01.wav");
LoadSE(GetCurrentScriptDirectory ~ "kira00.wav");
LoadSE(GetCurrentScriptDirectory ~ "enep01.wav");
@Initialize {
LoadGraphic(BossCutIn);
LoadGraphic(BossImage);
LoadGraphic(Back);
SetLife(1500);
SetDamageRate(10, 10);
SetTimer(120);
SetInvincibility(30);
CutIn(YOUMU, "Taboo "/"A Supermassive Black Hole Named Flandre"/"", BossCutIn, 0, 0, 200, 600);
SetScore(5000000);
SetEnemyMarker(true);
SetDurableSpellCard;
Concentration01(120);
Concentration02(60);
MagicCircle(true);
SetEffectForZeroLife(30, 100, 1);
SetX(GetCenterX());
SetY(100);
}
@MainLoop {
SetCollisionA(GetX, GetY, 32);
SetCollisionB(GetX, GetY, 24);
frame++;
yield;
frame2++;
if(frame == 150){
loop(200){
CreateShotPlanet(GetX,GetY,rand(1,360),rand(3,8),1);
}
}
if(frame == 300){
frame = 0;
loop(200){
CreateShotPlanet(GetX,GetY,rand(1,360),rand(3,8),-1);
}
}
}
@DrawLoop {
SetTexture(BossImage);
DrawGraphic(GetX, GetY);
}
@Finalize {
DeleteGraphic(BossImage);
DeleteGraphic(BossCutIn);
DeleteGraphic(Back);
}
@BackGround {
rotvar += 1;
SetGraphicAngle (0,0,rotvar);
SetTexture (Back);
SetGraphicRect (0,0,1024,768);
DrawGraphic (GetCenterX(), GetCenterY());
}
task CreateShotPlanet(x,y,d,vv,i) {
let obj = Obj_Create(OBJ_SHOT);
let frame = 0;
let angle = d;
let oldangle = 0;
let jump = 0;
let frame2 = 0;
Obj_SetPosition (obj, x, y);
Obj_SetSpeed (obj, vv);
Obj_SetAngle (obj, d);
if(i == 1){
ObjShot_SetGraphic(obj, RED32);
}
if(i == -1){
ObjShot_SetGraphic(obj, BLUE32);
}
ObjShot_SetDelay (obj, 0);
Obj_SetAutoDelete(obj,false);
while(! Obj_BeDeleted(obj)){
frame++;
if(frame < 80){
Obj_SetSpeed(obj,Obj_GetSpeed(obj) - Obj_GetSpeed(obj) /60);
}
if(frame > 79 && frame < 120){
angle+=4.3 * i;
Obj_SetAngle(obj,angle);
Obj_SetSpeed(obj,3);
//Obj_SetSpeed (obj, 2* ((GetX - Obj_GetX(obj))^2 + (GetY - Obj_GetY(obj))^2)^0.5* pi /90);
}
if(frame == 120){
Obj_SetSpeed(obj,6);
}
if(frame == 500){
ObjShot_FadeDelete(obj);
}
yield;
}
}
}