thanks hosts for 24hr extension uwu owo
|
@ -117,13 +117,13 @@ string DATA_DIFFICULTY = "";
|
|||
|
||||
InitiateData();
|
||||
|
||||
ObjSound_Load(objBGM, "script/Jam10/resourceLib/StageTheme.mp3");
|
||||
ObjSound_Load(objBGM, "script/Jam10/resourceLib/StageTheme.ogg");
|
||||
ObjSound_SetSoundDivision(objBGM, SOUND_BGM);
|
||||
ObjSound_SetResumeEnable(objBGM, true);
|
||||
ObjSound_SetLoopEnable(objBGM, true);
|
||||
ObjSound_SetLoopTime(objBGM, 22.72, 79.52);
|
||||
|
||||
ObjSound_Load(objBGMBoss, "script/Jam10/resourceLib/BossTheme.mp3");
|
||||
ObjSound_Load(objBGMBoss, "script/Jam10/resourceLib/BossTheme.ogg");
|
||||
ObjSound_SetSoundDivision(objBGMBoss, SOUND_BGM);
|
||||
ObjSound_SetResumeEnable(objBGMBoss, true);
|
||||
ObjSound_SetLoopEnable(objBGMBoss, false);
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
int difficulty = 0;
|
||||
|
||||
int STAGE_LENGTH = 90;
|
||||
int STAGE_LENGTH = 120;
|
||||
int MIDBOSS_LENGTH = 75;
|
||||
int BOSS_LENGTH = 30;
|
||||
|
||||
int HP_MAX = 4500;
|
||||
|
@ -10,6 +11,8 @@ int PHASE1_LIMIT = 2250;
|
|||
int PHASE2_LIMIT = 0;
|
||||
int PHASE3_LIMIT = 0;
|
||||
|
||||
int MIDBOSS_HP = 1800;
|
||||
|
||||
// Rank min/max
|
||||
|
||||
local{
|
||||
|
@ -24,9 +27,9 @@ local{
|
|||
}
|
||||
|
||||
|
||||
float RANK_MIN = [1, 1, 9][difficulty];
|
||||
float RANK_MAX = 9; // Since Novice locks Rank to a lower level, this distinction is necessary
|
||||
float RANK_MAX_TRUE = [6, 9, 9][difficulty]; // Can be changed
|
||||
float RANK_MIN = [1, 1, 12][difficulty];
|
||||
float RANK_MAX = 12; // Since Novice locks Rank to a lower level, this distinction is necessary
|
||||
float RANK_MAX_TRUE = [6, 12, 12][difficulty]; // Can be changed
|
||||
|
||||
SetCommonData("MinRank", RANK_MIN);
|
||||
SetCommonData("MaxRank", RANK_MAX_TRUE);
|
||||
|
@ -70,25 +73,23 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
float baseMoveSpeedM = 8;
|
||||
|
||||
// High speed
|
||||
float baseMoveSpeedH = 10;
|
||||
float baseMoveSpeedH = 9;
|
||||
|
||||
// Very high speed
|
||||
float baseMoveSpeedVH = 11.5;
|
||||
float baseMoveSpeedVH = 10.5;
|
||||
|
||||
// Speed multiplier per rank - speed increases by 0.02/0.03x per rank increase up to a max of 0.18/0.27x
|
||||
|
||||
float MoveSpeedRankMultiplierVL = 0.015;
|
||||
float MoveSpeedRankMultiplierL = 0.025;
|
||||
float MoveSpeedRankMultiplierH = 0.035;
|
||||
float MoveSpeedRankMultiplierVH = 0.05;
|
||||
float MoveSpeedRankMultiplierVL = 0.01;
|
||||
float MoveSpeedRankMultiplierL = 0.015;
|
||||
float MoveSpeedRankMultiplierH = 0.02;
|
||||
float MoveSpeedRankMultiplierVH = 0.03;
|
||||
|
||||
// ITEM RELATED
|
||||
|
||||
float smallFlyingEnm_itemPointMin = 8;
|
||||
float smallFlyingEnm_itemPointMax = 12;
|
||||
|
||||
float medFlyingEnm_itemPointMin = 12;
|
||||
float medFlyingEnm_itemPointMax = 18;
|
||||
float medFlyingEnm_itemPointMin = 14;
|
||||
float medFlyingEnm_itemPointMax = 21;
|
||||
|
||||
float largeFlyingEnm_itemPointMin = 20;
|
||||
float largeFlyingEnm_itemPointMax = 30;
|
||||
|
@ -177,8 +178,8 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
int W3_spawnDelayMin = 15;
|
||||
int W3_spawnDelayMax = 30;
|
||||
|
||||
int W3_fairyNumMin = 3;
|
||||
int W3_fairyNumMax = 9;
|
||||
int W3_fairyNumMin = 2;
|
||||
int W3_fairyNumMax = 6;
|
||||
|
||||
float W3_rangeMin = 1;
|
||||
float W3_rangeMax = 2.5;
|
||||
|
@ -194,8 +195,8 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
|
||||
// Wave 4: Mushroom fairy, fires small fireball lines
|
||||
|
||||
int W4_spawnDelayMin = 18;
|
||||
int W4_spawnDelayMax = 35;
|
||||
int W4_spawnDelayMin = 15;
|
||||
int W4_spawnDelayMax = 30;
|
||||
|
||||
int W4_fairyNumMin = 2;
|
||||
int W4_fairyNumMax = 5;
|
||||
|
@ -209,8 +210,8 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
int W4_stopTimeMin = 20;
|
||||
int W4_stopTimeMax = 30;
|
||||
|
||||
float W4_bulletSpdMin = 10;
|
||||
float W4_bulletSpdMax = 12.25;
|
||||
float W4_bulletSpdMin = 8;
|
||||
float W4_bulletSpdMax = 10;
|
||||
|
||||
// Wave 5: Clumped small fairy lines come from both sides to attack you.
|
||||
|
||||
|
@ -228,7 +229,7 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
float W5_bulletSpdMin = 11;
|
||||
float W5_bulletSpdMax = 13;
|
||||
|
||||
// Wave 6: Alt mushroom fairies (2 OR 3) spawns sparse rings (counts as ground)
|
||||
// Wave 6: Alt mushroom fairies (2 OR 3) spawns sparse rings (NOT GROUND)
|
||||
|
||||
int WG1_ringDenseMin = 10;
|
||||
int WG1_ringDenseMax = 14;
|
||||
|
@ -239,7 +240,7 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
int WG1_bulletDelayMin = 30;
|
||||
int WG1_bulletDelayMax = 45;
|
||||
|
||||
// Wave 7: Yukionna with spiral (counts as ground)
|
||||
// Wave 7 (S2): Yukionna with spiral (counts as ground)
|
||||
|
||||
int WG2_spiralDenseMin = 6;
|
||||
int WG2_spiralDenseMax = 9;
|
||||
|
@ -253,6 +254,40 @@ int[] bossRect = [192, 448, 384, 704];
|
|||
int WG2_spiralDelayMax = 40;
|
||||
int WG2_spiralDelayMin = 25;
|
||||
|
||||
// Wave 8 (S2): Medium fairies with W3 movements leave large fireball walls. Uses W4 parameters
|
||||
// Wave 9 (S2): Large number of small fairies come in from both sides (with W3 movements) firing aimed bullets.
|
||||
|
||||
int W9_spawnDelayMin = 5;
|
||||
int W9_spawnDelayMax = 10;
|
||||
|
||||
int W9_fairyNumMin = 8;
|
||||
int W9_fairyNumMax = 12;
|
||||
|
||||
int W9_bulletDelayMin = 30;
|
||||
int W9_bulletDelayMax = 50;
|
||||
|
||||
float W9_bulletSpdMin = 7.5;
|
||||
float W9_bulletSpdMax = 9.5;
|
||||
|
||||
// Wave 10 (S2): Clumped medium fairy (3 per line) come in from the right to fire large fireball lines.
|
||||
|
||||
int W10_spawnDelayMin = 35;
|
||||
int W10_spawnDelayMax = 50;
|
||||
|
||||
int W10_fairyNumMin = 2;
|
||||
int W10_fairyNumMax = 4;
|
||||
|
||||
int W10_bulletLineNumMin = 3;
|
||||
int W10_bulletLineNumMax = 5;
|
||||
|
||||
// Angles
|
||||
|
||||
int W10_moveTimeMin = 55;
|
||||
int W10_moveTimeMax = 70;
|
||||
|
||||
float W10_bulletSpdMin = 8;
|
||||
float W10_bulletSpdMax = 9.5;
|
||||
|
||||
/*
|
||||
// Wave Ground 1
|
||||
|
||||
|
@ -359,7 +394,7 @@ task UpdateDrops(){
|
|||
while(true){
|
||||
|
||||
smallFlyingEnm_itemPointMax = FUNC_LERP_LINEAR(12, 18, rank/RANK_MAX);
|
||||
medFlyingEnm_itemPointMax = FUNC_LERP_LINEAR(16, 24, rank/RANK_MAX);
|
||||
medFlyingEnm_itemPointMax = FUNC_LERP_LINEAR(21, 28, rank/RANK_MAX);
|
||||
largeFlyingEnm_itemPointMax = FUNC_LERP_LINEAR(30, 40, rank/RANK_MAX);
|
||||
verylargeFlyingEnm_itemPointMax = FUNC_LERP_LINEAR(45, 60, rank/RANK_MAX);
|
||||
|
||||
|
|
|
@ -273,8 +273,8 @@ function <int> _MushroomFairy(
|
|||
|
||||
_EnemyItemDrop(
|
||||
enm, true,
|
||||
smallFlyingEnm_itemPointMin, smallEnm_itemChainMin,
|
||||
smallFlyingEnm_itemPointMax, smallEnm_itemChainMax,
|
||||
medFlyingEnm_itemPointMin, smallEnm_itemChainMin,
|
||||
medFlyingEnm_itemPointMax, smallEnm_itemChainMax,
|
||||
invinTime*5, smallEnemyHitbox*2
|
||||
);
|
||||
|
||||
|
|
|
@ -65,8 +65,12 @@ let POINTER_CHAIN = LoadAreaCommonDataValuePointer("PIV", "ChainAmount", 1);
|
|||
ObjEnemy_SetDamageRate(bossObj, 0, 0);
|
||||
|
||||
_RenderBossFight(bossObj);
|
||||
|
||||
_MagicCircle(bossObj);
|
||||
|
||||
SetEnemyAutoDeleteClip(160, 160, 160, 160);
|
||||
|
||||
|
||||
//testTask();
|
||||
|
||||
//groundTask();
|
||||
|
@ -124,6 +128,7 @@ let POINTER_CHAIN = LoadAreaCommonDataValuePointer("PIV", "ChainAmount", 1);
|
|||
|
||||
// This array contains ONLY FLYING ENEMIES
|
||||
|
||||
|
||||
task groundTask(){
|
||||
|
||||
wait(90);
|
||||
|
@ -134,7 +139,7 @@ task groundTask(){
|
|||
wait(max(5, 15-rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
||||
if(GetCommonData("Ground Loops Cleared", 0)/3 == 0 && rank > 3){
|
||||
if(GetCommonData("Ground Loops Cleared", 0) % 3 == 0 && rank > 3){
|
||||
|
||||
WaveGround2(playerX);
|
||||
wait(max(5, 15-rank));
|
||||
|
@ -156,10 +161,56 @@ task flyingTask(){
|
|||
|
||||
wait(30);
|
||||
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > BOSS_LENGTH){
|
||||
// Stage 1
|
||||
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > MIDBOSS_LENGTH){
|
||||
|
||||
Wave1();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
|
||||
Wave2();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
|
||||
if(rank > 4 || GetCommonData("Flying Loops Cleared", 0) > 3){
|
||||
WaveGround1();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
}
|
||||
|
||||
Wave3();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
|
||||
Wave5();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+0.5, 1, RANK_MAX));
|
||||
|
||||
Wave4();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
|
||||
Wave1();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= MIDBOSS_LENGTH){break;}
|
||||
|
||||
SetCommonData("Flying Loops Cleared", GetCommonData("Flying Loops Cleared", 0)+1);
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+0.5, 1, RANK_MAX));
|
||||
|
||||
yield;
|
||||
}
|
||||
|
||||
_MidbossFight();
|
||||
|
||||
// Stage 2
|
||||
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > BOSS_LENGTH){
|
||||
|
||||
Wave9();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
||||
Wave2();
|
||||
|
@ -172,25 +223,25 @@ task flyingTask(){
|
|||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
}
|
||||
|
||||
Wave3();
|
||||
Wave5();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
||||
Wave5();
|
||||
Wave10();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+0.5, 1, RANK_MAX));
|
||||
|
||||
Wave4();
|
||||
Wave8();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
||||
Wave1();
|
||||
Wave9();
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
||||
if(rank > 7 || GetCommonData("Flying Loops Cleared", 0) > 5){
|
||||
if(rank > 7 || GetCommonData("Flying Loops Cleared", 0) > 4){
|
||||
WaveGround2(playerX);
|
||||
wait(max(5, 20-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= BOSS_LENGTH){break;}
|
||||
|
@ -204,7 +255,6 @@ task flyingTask(){
|
|||
|
||||
}
|
||||
|
||||
|
||||
task curEnmManage(){
|
||||
|
||||
SetCommonData("Flying Loops Cleared", 0);
|
||||
|
@ -284,6 +334,64 @@ task _BossExplosion(){
|
|||
|
||||
}
|
||||
|
||||
function _MidbossExplosion(int enmID, float x, float y){
|
||||
|
||||
bool explosionEnd = false;
|
||||
|
||||
async{
|
||||
|
||||
int timer = ObjEnemyBossScene_GetInfo(objScene, INFO_TIMERF);
|
||||
|
||||
while(!explosionEnd){
|
||||
|
||||
ObjEnemyBossScene_SetSpellTimer(objScene, timer);
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//NotifyEventAll(EV_DROP_POINT_ENEMY, [enmX, enmY], timer, maxTimer, minPoint, maxPoint);
|
||||
|
||||
DeleteShotAll(TYPE_ALL, TYPE_ITEM);
|
||||
SetPlayerInvincibilityFrame(90);
|
||||
ObjSound_Play(bossBoom);
|
||||
Obj_SetRenderPriorityI(enmID, 30);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR, 0), EV_EXPLODE, [x, y]);
|
||||
|
||||
_ObjShake(enmID, 60, 45);
|
||||
|
||||
async{
|
||||
|
||||
loop(15){
|
||||
//LoadEx(bossBoom, "script/game/resourceLib/bigBoom.ogg", 30 * SFXVol);
|
||||
ObjSound_Play(bossBoom);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR, 0), EV_EXPLODE, [x+rand(-90, 90), y+rand(-125, 125)]);
|
||||
wait(4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ObjMove_SetDestAtFrame(enmID, x, STG_HEIGHT+256, 60, LERP_ACCELERATE);
|
||||
|
||||
float ang = ObjRender_GetAngleZ(enmID);
|
||||
|
||||
ascent(i in 0..60){
|
||||
ObjRender_SetAngleZ(enmID, Interpolate_Accelerate(ang, ang+180, i/60));
|
||||
yield;
|
||||
}
|
||||
|
||||
explosionEnd = true;
|
||||
ObjSound_Play(bossBoom);
|
||||
Obj_Delete(enmID);
|
||||
|
||||
return;
|
||||
//_ScorePopup(float enmX, float enmY, int pointNum, int pivNum);
|
||||
|
||||
// NotifyEvent is faster than NotifyEventAll, considering how the item event will be called many times.
|
||||
|
||||
}
|
||||
|
||||
task EndBonus(){
|
||||
|
||||
while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > 0){
|
||||
|
@ -445,7 +553,9 @@ task testTask(){
|
|||
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > 20){
|
||||
|
||||
Wave5();
|
||||
Wave8();
|
||||
Wave9();
|
||||
Wave10();
|
||||
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, RANK_MAX));
|
||||
SetCommonData("Ground Loops Cleared", GetCommonData("Ground Loops Cleared", 0)+1);
|
||||
|
@ -480,6 +590,110 @@ task bossFight(){
|
|||
|
||||
}
|
||||
|
||||
function _MidbossFight(){
|
||||
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMERF) > MIDBOSS_LENGTH*60){
|
||||
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
// Stacked rings (2 to 3)
|
||||
// Every 2 ring waves, fire an aimed bullet ring (large fireballs)
|
||||
|
||||
int ringNum = FUNC_LERP_LINEAR(2, 4, rank/RANK_MAX);
|
||||
int ringDense = FUNC_LERP_LINEAR(16, 21, rank/RANK_MAX);
|
||||
int ringMaxSpd = FUNC_LERP_LINEAR(9, 11, rank/RANK_MAX);
|
||||
int aimedRingStopTime = FUNC_LERP_LINEAR(45, 30, rank/RANK_MAX);
|
||||
int aimedRingSpd = FUNC_LERP_LINEAR(11, 13, rank/RANK_MAX);
|
||||
int ringDel = FUNC_LERP_LINEAR(70, 45, rank/RANK_MAX);
|
||||
|
||||
int waveNum = 0;
|
||||
int timer = 20*60; // Boss auto-dies if not killed within 20 seconds.
|
||||
|
||||
int midbossObj =
|
||||
|
||||
_CreateEnemy(
|
||||
STG_WIDTH+128, STG_HEIGHT/2, STG_WIDTH-128, STG_HEIGHT/2, 30,
|
||||
1, 1,
|
||||
MIDBOSS_HP, 64, 0,
|
||||
texEnm,
|
||||
192, 176*4, 96*4, 240*4);
|
||||
|
||||
_MagicCircle(midbossObj);
|
||||
|
||||
wait(60);
|
||||
|
||||
ObjEnemy_SetAutoDelete(midbossObj, false);
|
||||
_FadeInvincibility(midbossObj, 90, 90, 0.5);
|
||||
|
||||
PhaseBonusCalculation(midbossObj, 0, "[font oc=(98, 0, 164) wg=800]Frozen Yogurt Toss");
|
||||
|
||||
async{
|
||||
|
||||
while(ObjEnemy_GetInfo(midbossObj, INFO_LIFE) > 0){
|
||||
|
||||
float baseAng = GetAngleToPlayer(midbossObj);
|
||||
|
||||
ascent(i in 0..ringNum){
|
||||
|
||||
float ang = baseAng + 24 * i;
|
||||
|
||||
Shoot2;
|
||||
|
||||
ascent(k in 0..ringDense){
|
||||
int bullet = CreateShotA1(ObjMove_GetX(midbossObj), ObjMove_GetY(midbossObj), ringMaxSpd * (1-i/(ringNum*2)), ang + k * 360/ringDense, KEV_BALL_AQUA, 10);
|
||||
_Delay(bullet, 10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (waveNum % 2 <= 0){
|
||||
|
||||
ascent(k in 0..ringDense*1.5){
|
||||
int bullet = CreateShotA2(ObjMove_GetX(midbossObj), ObjMove_GetY(midbossObj), aimedRingSpd*2, k * 360/(ringDense*1.5), -aimedRingSpd*2/20, 0, 0, KEV_FIRELARGE_AQUA, 10);
|
||||
ObjMove_AddPatternA4(bullet, ringDel, NO_CHANGE, 0, aimedRingSpd/30, aimedRingSpd, 0, NO_CHANGE, GetPlayerObjectID());
|
||||
_Delay(bullet, 10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
waveNum++;
|
||||
|
||||
wait(ringDel-30);
|
||||
|
||||
ObjMove_SetDestAtFrame(midbossObj, STG_WIDTH*3/4 + rand(-64, 64), playerY, 30, LERP_DECELERATE);
|
||||
|
||||
wait(30);
|
||||
|
||||
}
|
||||
|
||||
DeleteShotAll(TYPE_ALL, TYPE_ITEM);
|
||||
|
||||
}
|
||||
|
||||
async{
|
||||
while(timer > 0){
|
||||
timer--;
|
||||
yield;
|
||||
}
|
||||
ObjEnemy_SetLife(midbossObj, -1);
|
||||
}
|
||||
|
||||
float x = 0, y = 0;
|
||||
|
||||
while(ObjEnemy_GetInfo(midbossObj, INFO_LIFE) > 0 && !Obj_IsDeleted(midbossObj)){
|
||||
x = ObjMove_GetX(midbossObj);
|
||||
y = ObjMove_GetY(midbossObj);
|
||||
yield;
|
||||
}
|
||||
|
||||
_MidbossExplosion(midbossObj, x, y);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
function <void> BossIntro(){
|
||||
|
||||
bool bossCurrentlyIntro = true;
|
||||
|
@ -518,15 +732,16 @@ function <void> BossPhase1(){
|
|||
|
||||
_FadeInvincibility(bossObj, 90, 90, 0.5);
|
||||
|
||||
int dense = FUNC_LERP_LINEAR(12, 15, rank/RANK_MAX);
|
||||
int dense = FUNC_LERP_LINEAR(18, 23, rank/RANK_MAX);
|
||||
int del1 = FUNC_LERP_LINEAR(5, 3, rank/RANK_MAX);
|
||||
int del2 = FUNC_LERP_LINEAR(80, 60, rank/RANK_MAX);
|
||||
int ringNum = FUNC_LERP_LINEAR(6, 9, rank/RANK_MAX);
|
||||
int del2 = FUNC_LERP_LINEAR(60, 45, rank/RANK_MAX);
|
||||
int ringNum = FUNC_LERP_LINEAR(6, 10, rank/RANK_MAX);
|
||||
int accelTime = FUNC_LERP_LINEAR(30, 25, rank/RANK_MAX);
|
||||
float spd = FUNC_LERP_ACCEL(10, 13, rank/RANK_MAX);
|
||||
float range = FUNC_LERP_LINEAR(60, 100, rank/RANK_MAX);
|
||||
float angStart = rand(0, 360);
|
||||
|
||||
PhaseBonusCalculation(PHASE1_LIMIT, "[font oc=(98, 0, 164) wg=800]Withering Flower");
|
||||
PhaseBonusCalculation(bossObj, PHASE1_LIMIT, "[font oc=(98, 0, 164) wg=800]Withering Flower");
|
||||
|
||||
async{
|
||||
|
||||
|
@ -537,7 +752,7 @@ function <void> BossPhase1(){
|
|||
ascent(i in 0..ringNum){
|
||||
|
||||
float ang = baseAng + 180/ringNum * i;
|
||||
float[] ringPos = [bossX + sin(ang) * 60, bossY + cos(ang) * 60];
|
||||
float[] ringPos = [bossX + sin(ang) * range, bossY + cos(ang) * range];
|
||||
|
||||
Shoot2;
|
||||
|
||||
|
@ -578,24 +793,26 @@ function <void> BossPhase1(){
|
|||
function <void> BossPhase2(){
|
||||
|
||||
int fanDense = FUNC_LERP_LINEAR(3, 6, rank/RANK_MAX);
|
||||
int fanStack = FUNC_LERP_LINEAR(2, 4, rank/RANK_MAX);
|
||||
int fanRange = FUNC_LERP_LINEAR(4, 7, rank/RANK_MAX);
|
||||
int del = FUNC_LERP_LINEAR(45, 60, rank/RANK_MAX);
|
||||
int fanStack = FUNC_LERP_LINEAR(1, 3, rank/RANK_MAX);
|
||||
int fanRange = FUNC_LERP_LINEAR(3, 5, rank/RANK_MAX);
|
||||
int del = FUNC_LERP_LINEAR(50, 65, rank/RANK_MAX);
|
||||
float spd = FUNC_LERP_ACCEL(8, 11, rank/RANK_MAX);
|
||||
float moveSpd = FUNC_LERP_ACCEL(3, 6, rank/RANK_MAX);
|
||||
float moveSpd = FUNC_LERP_ACCEL(1.5, 3, rank/RANK_MAX);
|
||||
|
||||
float ang = 180;
|
||||
|
||||
ObjMove_SetDestAtFrame(bossObj, STG_WIDTH * 5/6, STG_HEIGHT/2, 60, LERP_DECELERATE);
|
||||
ObjMove_SetDestAtFrame(bossObj, STG_WIDTH * 5/6, STG_HEIGHT/2, 45, LERP_DECELERATE);
|
||||
|
||||
_FadeInvincibility(bossObj, 90, 90, 0.5);
|
||||
|
||||
PhaseBonusCalculation(PHASE2_LIMIT, "[font oc=(98, 0, 164) wg=800]Travelers Clad in White");
|
||||
PhaseBonusCalculation(bossObj, PHASE2_LIMIT, "[font oc=(98, 0, 164) wg=800]Travelers Clad in White");
|
||||
|
||||
async{
|
||||
|
||||
wait(45);
|
||||
|
||||
while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > PHASE2_LIMIT){
|
||||
ObjMove_SetY(bossObj, STG_HEIGHT/2 + STG_HEIGHT/5 * sin(ang));
|
||||
ObjMove_SetY(bossObj, STG_HEIGHT/2 + STG_HEIGHT/3 * sin(ang));
|
||||
ang += moveSpd;
|
||||
yield;
|
||||
}
|
||||
|
@ -604,6 +821,7 @@ function <void> BossPhase2(){
|
|||
DeleteShotAll(TYPE_ALL, TYPE_ITEM);
|
||||
|
||||
_BossExplosion();
|
||||
CollectAllItems();
|
||||
|
||||
}
|
||||
|
||||
|
@ -790,11 +1008,11 @@ function <void> BossPhase3(){
|
|||
}
|
||||
*/
|
||||
|
||||
task PhaseBonusCalculation(int HPthreshold, string spellName){
|
||||
task PhaseBonusCalculation(int enm, int HPthreshold, string spellName){
|
||||
|
||||
int curRank = rank;
|
||||
int scoreBase = 1000000 * curRank;
|
||||
int scoreBonus = GetAreaCommonData("PIV", "currentvalue", 1000)*100;
|
||||
int scoreBonus = GetAreaCommonData("PIV", "currentvalue", 1000)*250;
|
||||
int i = 0; // 20 seconds
|
||||
|
||||
function _CreateBonusText(float x, y, fontSize, int colorBorder, string text){
|
||||
|
@ -817,14 +1035,14 @@ task PhaseBonusCalculation(int HPthreshold, string spellName){
|
|||
|
||||
let scoreText = _CreateBonusText(STG_WIDTH-12, STG_HEIGHT/9+36, 24, 0x000000, "");
|
||||
|
||||
while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > HPthreshold){
|
||||
while(ObjEnemy_GetInfo(enm, INFO_LIFE) > HPthreshold){
|
||||
|
||||
scoreBase = trunc(Interpolate_Smooth(1000000 * curRank, 100000 * curRank, i/1200)/10)*10;
|
||||
i = min(1200, i+1);
|
||||
|
||||
scoreBonus = scoreBase * GetCommonDataPtr(POINTER_CHAIN, 1);
|
||||
|
||||
ObjText_SetText(scoreText, spellName ~ "[r][font sz=16]BONUS: [font oc=(255, 136, 0)]" ~ IntToString(scoreBonus));
|
||||
ObjText_SetText(scoreText, spellName ~ "[r][font sz=16]BONUS: [font oc=(255, 136, 0)]" ~ DigitToCommaArray(trunc(scoreBonus/10)*10));
|
||||
|
||||
yield;
|
||||
|
||||
|
@ -846,7 +1064,6 @@ task PhaseBonusCalculation(int HPthreshold, string spellName){
|
|||
|
||||
}
|
||||
|
||||
|
||||
///////////// ENEMY HANDLING (NOT BOSS) /////////////
|
||||
|
||||
/*
|
||||
|
@ -1380,7 +1597,6 @@ function Wave2(){
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
function Wave3(){
|
||||
|
||||
int num = FUNC_LERP_ACCEL(W3_fairyNumMin, W3_fairyNumMax, rank/RANK_MAX);
|
||||
|
@ -1531,7 +1747,7 @@ function Wave4(){
|
|||
|
||||
}
|
||||
|
||||
wait(del*3);
|
||||
wait(del*bulletnum);
|
||||
|
||||
}
|
||||
|
||||
|
@ -1634,7 +1850,7 @@ function WaveGround1(){
|
|||
task CreateEnemyA(float startX, float startY, float angle){
|
||||
|
||||
int enm = _MushroomFairyAlt(
|
||||
36, del*3,
|
||||
39, del*3,
|
||||
startX, startY
|
||||
);
|
||||
|
||||
|
@ -1694,7 +1910,7 @@ function WaveGround1(){
|
|||
CreateEnemyA(STG_WIDTH+128, STG_HEIGHT * 4/5, 180);
|
||||
}
|
||||
|
||||
while(length(enmGround) > 1){yield;}
|
||||
while(length(enmFly) > 1){yield;}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1755,6 +1971,259 @@ function <void> WaveGround2(float pos){
|
|||
|
||||
}
|
||||
|
||||
function Wave8(){
|
||||
|
||||
int num = FUNC_LERP_ACCEL(W4_fairyNumMin, W4_fairyNumMax, rank/RANK_MAX);
|
||||
int del = FUNC_LERP_ACCEL(W4_bulletDelayMax, W4_bulletDelayMin, rank/RANK_MAX);
|
||||
int bulletnum = FUNC_LERP_ACCEL(W4_bulletNumMin, W4_bulletNumMax, rank/RANK_MAX) - 1;
|
||||
int spawndel = FUNC_LERP_ACCEL(W4_spawnDelayMax, W4_spawnDelayMin, rank/RANK_MAX) * 1.1;
|
||||
float spd = FUNC_LERP_ACCEL(W4_bulletSpdMin, W4_bulletSpdMax, rank/RANK_MAX);
|
||||
float movespd = baseMoveSpeedH * (1 + MoveSpeedRankMultiplierL*rank);
|
||||
int stoptime = FUNC_LERP_LINEAR(W4_stopTimeMax, W4_stopTimeMin, rank/RANK_MAX);
|
||||
|
||||
int counter = 1;
|
||||
|
||||
task CreateEnemyA(float startX, float startY, float angle){
|
||||
|
||||
int enm = _MushroomFairy(
|
||||
40, del*3,
|
||||
startX, startY
|
||||
);
|
||||
|
||||
ObjMove_AddPatternA1(enm, 0, movespd, rand(angle-5, angle+5));
|
||||
ObjMove_SetAngularVelocity(enm, [rand(-0.4, -0.25), rand(0.25, 0.4)][rand_int(0, 1)]);
|
||||
|
||||
async{
|
||||
|
||||
while(!Obj_IsDeleted(enm)){
|
||||
|
||||
if(ObjMove_GetY(enm) > STG_HEIGHT+128 || ObjMove_GetY(enm) < -128){
|
||||
Obj_Delete(enm);
|
||||
break;
|
||||
}
|
||||
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async{
|
||||
|
||||
while(!Obj_IsDeleted(enm)){
|
||||
|
||||
if(ObjMove_GetY(enm) < STG_HEIGHT && ObjMove_GetY(enm) > 0){
|
||||
|
||||
ascent(i in 0..bulletnum){
|
||||
|
||||
int bullet = CreateShotA1(ObjMove_GetX(enm), ObjMove_GetY(enm), 0, 180, KEV_FIRELARGE_PURPLE, 10);
|
||||
//ObjRender_SetAngleZ(bullet, 180);
|
||||
_Delay(bullet, 10);
|
||||
|
||||
ObjMove_AddPatternA2(bullet, stoptime, NO_CHANGE, NO_CHANGE, spd/stoptime, spd, 0);
|
||||
|
||||
Shoot1;
|
||||
wait(del);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wait(del*bulletnum);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ascent(i in 0..num){
|
||||
|
||||
CreateEnemyA(rand(STG_WIDTH*6.5/8, STG_WIDTH*7/8), counter >= 1 ? -128 : STG_HEIGHT+128, counter >= 1 ? 90 : 270);
|
||||
|
||||
counter *= -1;
|
||||
|
||||
if(i != num){wait(spawndel);}
|
||||
else{}
|
||||
|
||||
}
|
||||
|
||||
while(length(enmFly) > 1){yield;}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
function Wave9(){
|
||||
|
||||
int num = FUNC_LERP_ACCEL(W9_fairyNumMin, W9_fairyNumMax, rank/RANK_MAX);
|
||||
int del = FUNC_LERP_ACCEL(W9_bulletDelayMax, W9_bulletDelayMin, rank/RANK_MAX);
|
||||
int spawndel = FUNC_LERP_ACCEL(W9_spawnDelayMax, W9_spawnDelayMin, rank/RANK_MAX);
|
||||
|
||||
float spd = FUNC_LERP_ACCEL(W9_bulletSpdMin, W9_bulletSpdMax, rank/RANK_MAX);
|
||||
float movespd = baseMoveSpeedH * (1 + MoveSpeedRankMultiplierVL*rank);
|
||||
|
||||
float[] rangemove = [3, 6];
|
||||
|
||||
int counter = 1;
|
||||
|
||||
task CreateEnemyA(float startX, float startY, float spd){
|
||||
|
||||
float ang = rand(0, 180);
|
||||
float spdMax = rand(rangemove[0], rangemove[1]);
|
||||
|
||||
int enm = _SmallFairy(
|
||||
40, del*3,
|
||||
startX, startY
|
||||
);
|
||||
|
||||
async{
|
||||
|
||||
while(!Obj_IsDeleted(enm)){
|
||||
|
||||
//ObjMove_SetSpeed(enm, )
|
||||
|
||||
ObjMove_AddPatternB1(enm, 0, sin(ang) * spdMax, spd);
|
||||
ang += 3;
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async{
|
||||
|
||||
wait(spawndel);
|
||||
|
||||
while(!Obj_IsDeleted(enm)){
|
||||
|
||||
if(ObjMove_GetY(enm) > STG_HEIGHT+128 || ObjMove_GetY(enm) < -128){
|
||||
Obj_Delete(enm);
|
||||
break;
|
||||
}
|
||||
|
||||
if(ObjMove_GetY(enm) < STG_HEIGHT && ObjMove_GetY(enm) > 0){
|
||||
|
||||
if (spd < 0){
|
||||
|
||||
ascent(i in 0..3){
|
||||
int bullet = CreateShotA1(ObjMove_GetX(enm), ObjMove_GetY(enm), spd - i * spd/15, GetAngleToPlayer(enm)+180, KEV_BALL_PURPLE, 10);
|
||||
ObjRender_SetAngleZ(bullet, 180);
|
||||
_Delay(bullet, 10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
ascent(i in 0..3){
|
||||
int bullet = CreateShotA1(ObjMove_GetX(enm), ObjMove_GetY(enm), spd - i * spd/15, GetAngleToPlayer(enm), KEV_BALL_PURPLE, 10);
|
||||
_Delay(bullet, 10);
|
||||
}
|
||||
|
||||
}
|
||||
//_Delay(bullet, 5);
|
||||
Shoot1;
|
||||
wait(del);
|
||||
}
|
||||
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ascent(i in 0..num){
|
||||
|
||||
CreateEnemyA(rand(STG_WIDTH*6.5/8, STG_WIDTH*6.75/8), counter >= 1 ? -128 : STG_HEIGHT+128, movespd*counter);
|
||||
|
||||
counter *= -1;
|
||||
|
||||
if(i != num){wait(spawndel);}
|
||||
else{}
|
||||
|
||||
}
|
||||
|
||||
while(length(enmFly) > 1){yield;}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
function Wave10(){
|
||||
|
||||
int num = FUNC_LERP_LINEAR(W10_fairyNumMin, W10_fairyNumMax, rank/RANK_MAX);
|
||||
int spawndel = FUNC_LERP_ACCEL(W10_spawnDelayMax, W10_spawnDelayMin, rank/RANK_MAX);
|
||||
int bulletnum = FUNC_LERP_ACCEL(W10_bulletLineNumMin, W10_bulletLineNumMax, rank/RANK_MAX);
|
||||
float spd = FUNC_LERP_ACCEL(W10_bulletSpdMin, W10_bulletSpdMax, rank/RANK_MAX);
|
||||
float movetime = FUNC_LERP_LINEAR(W10_moveTimeMin, W10_moveTimeMax, rank/RANK_MAX);
|
||||
float movespeed = FUNC_LERP_LINEAR(12, 15, rank/RANK_MAX);
|
||||
|
||||
task CreateEnemyA(float startX, float startY, float movespeed){
|
||||
|
||||
int enm = _MushroomFairyAlt(
|
||||
40, 30,
|
||||
startX, startY
|
||||
);
|
||||
|
||||
ObjEnemy_SetDamageRate(enm, 0, 0);
|
||||
ObjMove_AddPatternB2(enm, 0, movespeed, 0, -movespeed/movetime, 0, -movespeed, 0);
|
||||
|
||||
async{
|
||||
|
||||
while(!Obj_IsDeleted(enm)){
|
||||
|
||||
if(ObjMove_GetY(enm) > STG_HEIGHT+128 || ObjMove_GetY(enm) < -128){
|
||||
Obj_Delete(enm);
|
||||
break;
|
||||
}
|
||||
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async{
|
||||
|
||||
wait(movetime/2);
|
||||
|
||||
ObjEnemy_SetDamageRate(enm, 100, 100);
|
||||
|
||||
while(!Obj_IsDeleted(enm)){
|
||||
|
||||
ascent(i in 0..bulletnum){
|
||||
int bullet = CreateShotA1(ObjMove_GetX(enm), ObjMove_GetY(enm), spd - i * (spd/(bulletnum*2)), GetAngleToPlayer(enm), KEV_LEAF_AQUA, 5);
|
||||
Shoot1;
|
||||
_Delay(bullet, 5);
|
||||
}
|
||||
|
||||
wait(spawndel/2);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ascent(k in 0..num){
|
||||
CreateEnemyA(STG_WIDTH + 96, 96 + k * 84, -movespeed);
|
||||
}
|
||||
|
||||
wait(spawndel);
|
||||
|
||||
ascent(k in 0..num){
|
||||
CreateEnemyA(STG_WIDTH + 96, STG_HEIGHT - 96 - k * 84, -movespeed);
|
||||
}
|
||||
|
||||
while(length(enmFly) > 1){yield;}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
function Wave3(){
|
||||
|
@ -2157,5 +2626,21 @@ task _ObjShake(objID, shaketime, intensity){
|
|||
yield;
|
||||
}
|
||||
|
||||
task _MagicCircle(int enmID){
|
||||
|
||||
int circle = _Create2DImage(texEnm, [96*4, 112*4, 176*4, 192*4]);
|
||||
Obj_SetRenderPriorityI(circle, 39);
|
||||
ObjRender_SetScaleXYZ(circle, 2);
|
||||
|
||||
while(ObjEnemy_GetInfo(enmID, INFO_LIFE) > 0){
|
||||
|
||||
ObjRender_SetPosition(circle, ObjRender_GetX(enmID), ObjRender_GetY(enmID), 1);
|
||||
ObjRender_SetAngleZ(circle, ObjRender_GetAngleZ(circle)+3);
|
||||
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
Obj_Delete(circle);
|
||||
}
|
||||
|
||||
|
|
After Width: | Height: | Size: 373 KiB |
After Width: | Height: | Size: 99 KiB |
|
@ -0,0 +1,84 @@
|
|||
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
||||
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.b0f8be9, 2021/12/08-19:11:22 ">
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
|
||||
xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/"
|
||||
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
|
||||
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
|
||||
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<xmp:CreateDate>2023</xmp:CreateDate>
|
||||
<xmp:MetadataDate>2023-01-30T18:08:26+07:00</xmp:MetadataDate>
|
||||
<xmp:ModifyDate>2023-01-30T18:08:26+07:00</xmp:ModifyDate>
|
||||
<xmpDM:Tracks>
|
||||
<rdf:Bag>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpDM:trackName>CuePoint Markers</xmpDM:trackName>
|
||||
<xmpDM:trackType>Cue</xmpDM:trackType>
|
||||
<xmpDM:frameRate>f48000</xmpDM:frameRate>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpDM:trackName>CD Track Markers</xmpDM:trackName>
|
||||
<xmpDM:trackType>Track</xmpDM:trackType>
|
||||
<xmpDM:frameRate>f48000</xmpDM:frameRate>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpDM:trackName>Subclip Markers</xmpDM:trackName>
|
||||
<xmpDM:trackType>InOut</xmpDM:trackType>
|
||||
<xmpDM:frameRate>f48000</xmpDM:frameRate>
|
||||
</rdf:li>
|
||||
</rdf:Bag>
|
||||
</xmpDM:Tracks>
|
||||
<xmpMM:InstanceID>xmp.iid:ee759497-91c4-e549-9cd3-eb5dc35ca7c0</xmpMM:InstanceID>
|
||||
<xmpMM:DocumentID>xmp.did:ee759497-91c4-e549-9cd3-eb5dc35ca7c0</xmpMM:DocumentID>
|
||||
<xmpMM:OriginalDocumentID>xmp.did:ec36adcb-d4b8-a648-9da4-f79adf813889</xmpMM:OriginalDocumentID>
|
||||
<xmpMM:History>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>saved</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:ec36adcb-d4b8-a648-9da4-f79adf813889</stEvt:instanceID>
|
||||
<stEvt:when>2023-01-30T18:08:26+07:00</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Audition 23.0 (Windows)</stEvt:softwareAgent>
|
||||
<stEvt:changed>/metadata</stEvt:changed>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>saved</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:ee759497-91c4-e549-9cd3-eb5dc35ca7c0</stEvt:instanceID>
|
||||
<stEvt:when>2023-01-30T18:08:26+07:00</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Audition 23.0 (Windows)</stEvt:softwareAgent>
|
||||
<stEvt:changed>/</stEvt:changed>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpMM:History>
|
||||
<xmpMM:DerivedFrom rdf:parseType="Resource">
|
||||
<stRef:instanceID>xmp.iid:ec36adcb-d4b8-a648-9da4-f79adf813889</stRef:instanceID>
|
||||
<stRef:documentID>xmp.did:ec36adcb-d4b8-a648-9da4-f79adf813889</stRef:documentID>
|
||||
<stRef:originalDocumentID>xmp.did:ec36adcb-d4b8-a648-9da4-f79adf813889</stRef:originalDocumentID>
|
||||
</xmpMM:DerivedFrom>
|
||||
<dc:format>audio/ogg; codec="vorbis"</dc:format>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</x:xmpmeta>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?xpacket end="w"?>
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 34 KiB |
|
@ -0,0 +1,84 @@
|
|||
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
||||
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.b0f8be9, 2021/12/08-19:11:22 ">
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
|
||||
xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/"
|
||||
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
|
||||
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
|
||||
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<xmp:CreateDate>2023</xmp:CreateDate>
|
||||
<xmp:MetadataDate>2023-01-30T18:08:06+07:00</xmp:MetadataDate>
|
||||
<xmp:ModifyDate>2023-01-30T18:08:06+07:00</xmp:ModifyDate>
|
||||
<xmpDM:Tracks>
|
||||
<rdf:Bag>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpDM:trackName>CuePoint Markers</xmpDM:trackName>
|
||||
<xmpDM:trackType>Cue</xmpDM:trackType>
|
||||
<xmpDM:frameRate>f44100</xmpDM:frameRate>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpDM:trackName>CD Track Markers</xmpDM:trackName>
|
||||
<xmpDM:trackType>Track</xmpDM:trackType>
|
||||
<xmpDM:frameRate>f44100</xmpDM:frameRate>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpDM:trackName>Subclip Markers</xmpDM:trackName>
|
||||
<xmpDM:trackType>InOut</xmpDM:trackType>
|
||||
<xmpDM:frameRate>f44100</xmpDM:frameRate>
|
||||
</rdf:li>
|
||||
</rdf:Bag>
|
||||
</xmpDM:Tracks>
|
||||
<xmpMM:InstanceID>xmp.iid:a92e0057-5a6e-4d4d-be15-5837f8b9ea9d</xmpMM:InstanceID>
|
||||
<xmpMM:DocumentID>xmp.did:a92e0057-5a6e-4d4d-be15-5837f8b9ea9d</xmpMM:DocumentID>
|
||||
<xmpMM:OriginalDocumentID>xmp.did:bc8b308b-79c6-374a-a9d0-2248d15c4871</xmpMM:OriginalDocumentID>
|
||||
<xmpMM:History>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>saved</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:bc8b308b-79c6-374a-a9d0-2248d15c4871</stEvt:instanceID>
|
||||
<stEvt:when>2023-01-30T18:08:06+07:00</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Audition 23.0 (Windows)</stEvt:softwareAgent>
|
||||
<stEvt:changed>/metadata</stEvt:changed>
|
||||
</rdf:li>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>saved</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:a92e0057-5a6e-4d4d-be15-5837f8b9ea9d</stEvt:instanceID>
|
||||
<stEvt:when>2023-01-30T18:08:06+07:00</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Audition 23.0 (Windows)</stEvt:softwareAgent>
|
||||
<stEvt:changed>/</stEvt:changed>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpMM:History>
|
||||
<xmpMM:DerivedFrom rdf:parseType="Resource">
|
||||
<stRef:instanceID>xmp.iid:bc8b308b-79c6-374a-a9d0-2248d15c4871</stRef:instanceID>
|
||||
<stRef:documentID>xmp.did:bc8b308b-79c6-374a-a9d0-2248d15c4871</stRef:documentID>
|
||||
<stRef:originalDocumentID>xmp.did:bc8b308b-79c6-374a-a9d0-2248d15c4871</stRef:originalDocumentID>
|
||||
</xmpMM:DerivedFrom>
|
||||
<dc:format>audio/ogg; codec="vorbis"</dc:format>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</x:xmpmeta>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?xpacket end="w"?>
|
|
@ -206,7 +206,7 @@ task TExtendSystem(){
|
|||
// NARUMISTG
|
||||
|
||||
req = [
|
||||
10, 20, 40, 80, 120
|
||||
10, 30, 60, 120, 250
|
||||
];
|
||||
|
||||
loop{
|
||||
|
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 64 KiB |
|
@ -3,7 +3,7 @@
|
|||
int PetalEffect = ObjParticleList_Create(OBJ_PARTICLE_LIST_2D);
|
||||
|
||||
task InitEffect(){
|
||||
_EffectListPreRender(PetalEffect, imgEffect, [0, 0, 256, 256]);
|
||||
_EffectListPreRender(PetalEffect, imgEffect, [240, 0, 240+192, 192]);
|
||||
}
|
||||
|
||||
let imgEffect = dirCurrent ~ "./img/Kevin_Effect.png";
|
||||
|
@ -88,7 +88,7 @@ task _ExplosionEffect(float enmX, float enmY, int targetList){
|
|||
let z_add = prand(-5, 5);
|
||||
|
||||
ascent(i in 0..effectLength){
|
||||
_PetalMovement(Interpolate_Decelerate(1.5, 0.5, i/effectLength), Interpolate_Decelerate(255, 0, i/effectLength));
|
||||
_PetalMovement(Interpolate_Decelerate(2, 1, i/effectLength), Interpolate_Decelerate(255, 0, i/effectLength));
|
||||
yield;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//--------------------------------------------------------------
|
||||
//Package Script Path
|
||||
// Upon starting the game, the specified package script will be run.
|
||||
package.script.main = script/GayGunner_Package.dnh
|
||||
//package.script.main = script/GayGunner_Package.dnh
|
||||
|
||||
//--------------------------------------------------------------
|
||||
//Window Title
|
||||
|
|