137 lines
5.1 KiB
Plaintext
137 lines
5.1 KiB
Plaintext
|
|
let bSpell = false;
|
|
let current = GetCurrentScriptDirectory();
|
|
@Initialize
|
|
{
|
|
SetCameraFocusX(0);
|
|
SetCameraFocusY(0);
|
|
SetCameraFocusZ(0);
|
|
SetCameraRadius(550);
|
|
SetCameraElevationAngle(35);
|
|
SetCameraAzimuthAngle(90);
|
|
|
|
SetFogParam(0, 1000, 32, 32, 32);
|
|
|
|
ascent(let pos in 0..3)
|
|
{
|
|
TNormalBackground(pos);
|
|
}
|
|
TSpellBackground();
|
|
}
|
|
|
|
@MainLoop
|
|
{
|
|
|
|
let objScene = GetEnemyBossSceneObjectID();
|
|
if(objScene != ID_INVALID && ObjEnemyBossScene_GetInfo(objScene, INFO_IS_SPELL))
|
|
{
|
|
bSpell = true;
|
|
}
|
|
else
|
|
{
|
|
bSpell = false;
|
|
}
|
|
|
|
|
|
yield;
|
|
}
|
|
|
|
|
|
task TNormalBackground(pos)
|
|
{
|
|
let pz = (pos-1) * 1000;
|
|
let path = current ~ "img/Default_Background_IceMountain.mqo";
|
|
let obj = ObjMesh_Create();
|
|
ObjMesh_Load(obj, path);
|
|
Obj_SetRenderPriorityI(obj, 20);
|
|
|
|
let frameInvisible = 0;
|
|
loop
|
|
{
|
|
if(bSpell)
|
|
{
|
|
frameInvisible++;
|
|
if(frameInvisible >= 60)
|
|
{
|
|
Obj_SetVisible(obj, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
frameInvisible = 0;
|
|
Obj_SetVisible(obj, true);
|
|
}
|
|
|
|
ObjRender_SetZ(obj, pz);
|
|
pz++;
|
|
if(pz > 1000){pz -= 3000;}
|
|
|
|
yield;
|
|
}
|
|
}
|
|
|
|
task TSpellBackground
|
|
{
|
|
let path1 = current ~ "img/Default_Background_IceMountain_Spell01.png";
|
|
let obj1 = ObjPrim_Create(OBJ_SPRITE_2D);
|
|
ObjRender_SetBlendType(obj1, BLEND_ALPHA);
|
|
Obj_SetRenderPriority(obj1, 0.21);
|
|
ObjPrim_SetTexture(obj1, path1);
|
|
ObjSprite2D_SetDestRect(obj1, 0, 0, 384, 448);
|
|
|
|
let path2 = current ~ "img/Default_Background_IceMountain_Spell02.png";
|
|
let obj2 = ObjPrim_Create(OBJ_SPRITE_2D);
|
|
ObjRender_SetBlendType(obj2, BLEND_ADD_RGB);
|
|
Obj_SetRenderPriority(obj2, 0.21);
|
|
ObjPrim_SetTexture(obj2, path2);
|
|
ObjSprite2D_SetDestRect(obj2, 0, 0, 384, 448);
|
|
|
|
let u1 = 0;
|
|
let v1 = 0;
|
|
let u2 = 0;
|
|
let v2 = 0;
|
|
let su2 = rand(0.25, 1);
|
|
let sv2 = rand(0.25, 1);
|
|
let alpha = 0;
|
|
let frame = 0;
|
|
loop
|
|
{
|
|
if(bSpell)
|
|
{
|
|
alpha += 4;
|
|
}
|
|
else
|
|
{
|
|
alpha = 0;
|
|
}
|
|
|
|
v1 -= 1;
|
|
if(v1 < 256){v1+=256;}
|
|
u2 += su2;
|
|
if((su2 > 0 && u2 > 256) || (su2 < 0 && u2 < -256))
|
|
{
|
|
u2=0;
|
|
su2 = rand(0.25, 1);
|
|
if(rand(0, 1) < 0.5){su2 *= -1;}
|
|
}
|
|
v2 += sv2;
|
|
if((sv2 > 0 && v2 > 256) || (sv2 < 0 && v2 < -256))
|
|
{
|
|
v2 = 0;
|
|
sv2 = rand(0.25, 1);
|
|
if(rand(0, 1) < 0.5){sv2 *= -1;}
|
|
}
|
|
|
|
ObjRender_SetAlpha(obj1, alpha);
|
|
Obj_SetVisible(obj1, alpha > 0);
|
|
ObjSprite2D_SetSourceRect(obj1, u1, v1, u1 + 255, v1 + 255);
|
|
|
|
ObjRender_SetColor(obj2, alpha, alpha, alpha);
|
|
Obj_SetVisible(obj2, alpha > 0);
|
|
ObjSprite2D_SetSourceRect(obj2, u2, v2, u2 + 255, v2 + 255);
|
|
frame++;
|
|
yield;
|
|
}
|
|
|
|
}
|