Update 1.01a Content Complete.
This commit is contained in:
parent
dba085c30f
commit
c6c87d7c2f
BIN
LogWindow.dat
BIN
LogWindow.dat
Binary file not shown.
BIN
config.dat
BIN
config.dat
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -100,7 +100,7 @@ let pointerPIV = LoadAreaCommonDataValuePointer("PIV", "currentvalue", 10000);
|
|||
float[] pos = GetEventArgument(0);
|
||||
//int listTarget = GetEventArgument(1);
|
||||
|
||||
if(GetAreaCommonData("Config", "EffectCut", 0) >= 2){ObjSound_Play(sfxBoom);}
|
||||
if(GetCommonDataPtr(EFFECTCUT_PTR, 0) >= 2){ObjSound_Play(sfxBoom);}
|
||||
//_EffectListPreRender(PetalEffect, imgEffect, [0, 0, 256, 256]);
|
||||
else{_ExplosionEffect(pos[0], pos[1], PetalEffect);}
|
||||
|
||||
|
|
|
@ -195,18 +195,11 @@ function <int> _CreateEnemy(
|
|||
|
||||
task _HandleEnemyWellbeing(int enemyID, float sizeHitbox, float sizeHurtbox){
|
||||
|
||||
float enmX = 0, enmY = 0;
|
||||
//float enmX = 0, enmY = 0;
|
||||
|
||||
while(ObjEnemy_GetInfo(enemyID, INFO_LIFE) > 0){
|
||||
|
||||
enmX = ObjMove_GetX(enemyID);
|
||||
enmY = ObjMove_GetY(enemyID);
|
||||
|
||||
if(ObjEnemy_GetInfo(enemyID, INFO_LIFE) <= 0){break;}
|
||||
|
||||
else{
|
||||
ObjEnemy_SetIntersectionCircleToShot(enemyID, enmX, enmY, sizeHitbox);
|
||||
}
|
||||
ObjEnemy_SetIntersectionCircleToShot(enemyID, ObjMove_GetX(enemyID), ObjMove_GetY(enemyID), sizeHitbox);
|
||||
//ObjEnemy_SetIntersectionCircleToPlayer(enemyID, ObjMove_GetX(enemyID), ObjMove_GetY(enemyID), sizeHurtbox);
|
||||
yield;
|
||||
|
||||
|
|
|
@ -22,16 +22,9 @@
|
|||
|
||||
// Convenience constants
|
||||
|
||||
let ITEMID_PTR = LoadAreaCommonDataValuePointer("ScriptID", "ItemID", 0);
|
||||
let SYSTEMID_PTR = LoadAreaCommonDataValuePointer("ScriptID", "SystemID", 0);
|
||||
|
||||
let FLYINGENM_PTR = LoadCommonDataValuePointer("Flying Defeated", 0);
|
||||
let GROUNDENM_PTR = LoadCommonDataValuePointer("Ground Defeated", 0);
|
||||
|
||||
const STG_WIDTH = GetStgFrameWidth();
|
||||
const STG_HEIGHT = GetStgFrameHeight();
|
||||
|
||||
let texEnm = "script/game/resourceLib/EnmTexture.png";
|
||||
let blipVol = GetAreaCommonData("Config", "SEVol", 100) * 0.01;
|
||||
|
||||
InstallFont("script/KevinSystem/font/Connecting Chain Handserif.ttf");
|
||||
|
|
|
@ -194,7 +194,7 @@ task _DropPIVItemEnemy(int IDPlayer, float[] posEnm, int pointMin, int pointMax,
|
|||
|
||||
}
|
||||
|
||||
if(GetAreaCommonData("Config", "EffectCut", 0) >= 1){}
|
||||
if(GetCommonDataPtr(EFFECTCUT_PTR, 0) >= 1){}
|
||||
else{_ScorePopup(posEnm[0], posEnm[1], "PIV", pointFinal);}
|
||||
|
||||
return;
|
||||
|
|
|
@ -9,7 +9,7 @@ function CreatePIVItem(itemtype, x, y){
|
|||
ObjItem_SetAutoDelete(PIVItem, false);
|
||||
|
||||
ObjMove_SetAngle(PIVItem, 90);
|
||||
ObjMove_SetSpeed(PIVItem, -20);
|
||||
ObjMove_SetSpeed(PIVItem, -10);
|
||||
ObjMove_SetAcceleration(PIVItem, 1);
|
||||
ObjMove_SetMaxSpeed(PIVItem, 0);
|
||||
|
||||
|
|
|
@ -7,5 +7,13 @@ const EV_DROP_EXTEND = EV_USER + 203i;
|
|||
|
||||
const EV_EXPLODE = EV_USER + 300i;
|
||||
|
||||
const EFFECTCUT_PTR = LoadAreaCommonDataValuePointer("Config", "EffectCut", 0);
|
||||
|
||||
const ITEMID_PTR = LoadAreaCommonDataValuePointer("ScriptID", "ItemID", 0);
|
||||
const SYSTEMID_PTR = LoadAreaCommonDataValuePointer("ScriptID", "SystemID", 0);
|
||||
|
||||
const FLYINGENM_PTR = LoadCommonDataValuePointer("Flying Defeated", 0);
|
||||
const GROUNDENM_PTR = LoadCommonDataValuePointer("Ground Defeated", 0);
|
||||
|
||||
//const SYSTEMID_PTR = LoadAreaCommonDataValuePointer("ScriptID", "SystemID", 0);
|
||||
//const ITEMID_PTR = LoadAreaCommonDataValuePointer("ScriptID", "ItemID", 0);
|
Binary file not shown.
|
@ -31,7 +31,7 @@ int[] enmGround = [];
|
|||
|
||||
int[] rankAvg = [];
|
||||
|
||||
let SYSTEMID_PTR_2 = LoadAreaCommonDataValuePointer("ScriptID", "SystemID", 0);
|
||||
//let SYSTEMID_PTR_2 = LoadAreaCommonDataValuePointer("ScriptID", "SystemID", 0);
|
||||
|
||||
// Includes ahoy
|
||||
|
||||
|
@ -69,6 +69,7 @@ let SYSTEMID_PTR_2 = LoadAreaCommonDataValuePointer("ScriptID", "SystemID", 0);
|
|||
bossTask();
|
||||
mainTask();
|
||||
groundTask();
|
||||
|
||||
curEnmManage();
|
||||
|
||||
//SetCommonData("Rank", 9);
|
||||
|
@ -134,8 +135,9 @@ task curEnmManage(){
|
|||
enmFly = [];
|
||||
allEnm = GetIntersectionRegistedEnemyID();
|
||||
for each (int enm in ref allEnm){
|
||||
if(Obj_GetRenderPriorityI(enm) <= 34){enmGround ~= [enm];}
|
||||
else if(Obj_GetRenderPriorityI(enm) >= 35){enmFly ~= [enm];}
|
||||
if(Obj_GetRenderPriorityI(enm) <= 35){enmGround ~= [enm];}
|
||||
else if(Obj_GetRenderPriorityI(enm) >= 36 && Obj_GetRenderPriorityI(enm) < 41){enmFly ~= [enm];}
|
||||
else{}
|
||||
}
|
||||
wait(30);
|
||||
}
|
||||
|
@ -559,13 +561,18 @@ task _BossExplosion(
|
|||
|
||||
//NotifyEventAll(EV_DROP_POINT_ENEMY, [enmX, enmY], timer, maxTimer, minPoint, maxPoint);
|
||||
|
||||
SetPlayerInvincibilityFrame(300);
|
||||
ObjSound_Play(bossBoom);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR_2, 0), EV_EXPLODE, [enmX, enmY]);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR, 0), EV_EXPLODE, [enmX, enmY]);
|
||||
|
||||
_ObjShake(IDship, 190, 120);
|
||||
|
||||
ObjSprite2D_SetSourceRect(IDship, [1280, 1536, 2048, 2048]);
|
||||
|
||||
loop(30){
|
||||
//LoadEx(bossBoom, "script/game/resourceLib/bigBoom.ogg", 30 * SFXVol);
|
||||
ObjSound_Play(bossBoom);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR_2, 0), EV_EXPLODE, [shipX+rand(-240, 240), shipY+rand(-150, 150)]);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR, 0), EV_EXPLODE, [shipX+rand(-240, 240), shipY+rand(-150, 150)]);
|
||||
wait(6);
|
||||
}
|
||||
|
||||
|
@ -582,7 +589,7 @@ task _BossExplosion(
|
|||
|
||||
_EndShake(120, 120);
|
||||
loop(120){
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR_2, 0), EV_EXPLODE, [shipX+rand(-240, 240), STG_HEIGHT+rand(0, -150)]);
|
||||
NotifyEvent(GetCommonDataPtr(SYSTEMID_PTR, 0), EV_EXPLODE, [shipX+rand(-240, 240), STG_HEIGHT+rand(0, -150)]);
|
||||
}
|
||||
|
||||
ObjSound_Play(bossBoom);
|
||||
|
@ -640,6 +647,7 @@ task EndBonus(int ID, int IDship){
|
|||
|
||||
rankAvgFinal = rankSum/length(rankAvg);
|
||||
|
||||
_CreateBonusText(STG_WIDTH/2, STG_HEIGHT/2-220, 30, 0xFF5555, "LIVES REMAINING: " ~ IntToString(GetPlayerLife()));
|
||||
_CreateBonusText(STG_WIDTH/2, STG_HEIGHT/2-180, 30, 0x397FFF, "TIME REMAINING: " ~ vtos("5.2f", timer/60));
|
||||
_CreateBonusText(STG_WIDTH/2, STG_HEIGHT/2-140, 30, 0x00CC00, "GROUND ENEMIES DEFEATED: " ~ IntToString(GetCommonDataPtr(GROUNDENM_PTR, 0)));
|
||||
_CreateBonusText(STG_WIDTH/2, STG_HEIGHT/2-100, 30, 0x8400CC, "FLYING ENEMIES DEFEATED: " ~ IntToString(GetCommonDataPtr(FLYINGENM_PTR, 0)));
|
||||
|
@ -650,7 +658,7 @@ task EndBonus(int ID, int IDship){
|
|||
|
||||
wait(120);
|
||||
|
||||
float multiplierBonus = timer/60 * 5 + GetCommonDataPtr(GROUNDENM_PTR, 0)/5 + GetCommonDataPtr(FLYINGENM_PTR, 0)/5 + rankAvgFinal * 5;
|
||||
float multiplierBonus = GetPlayerLife() * 5 + timer/60 * 5 + GetCommonDataPtr(GROUNDENM_PTR, 0)/5 + GetCommonDataPtr(FLYINGENM_PTR, 0)/5 + rankAvgFinal * 5;
|
||||
|
||||
int scoreBonus = trunc ( (multiplierBonus * GetAreaCommonData("PIV", "currentvalue", 0)) / 10 ) * 10;
|
||||
|
||||
|
@ -692,6 +700,18 @@ task RankManagement(){
|
|||
}
|
||||
}
|
||||
|
||||
async{
|
||||
while(true){
|
||||
if(ObjMove_GetY(GetPlayerObjectID()) < GetStgFrameHeight()/6){
|
||||
ObjRender_SetAlpha(textRank, 60);
|
||||
}
|
||||
else{
|
||||
ObjRender_SetAlpha(textRank, 255);
|
||||
}
|
||||
yield;
|
||||
}
|
||||
}
|
||||
|
||||
async{
|
||||
while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > 0){
|
||||
rankAvg ~= [rank];
|
||||
|
@ -708,10 +728,10 @@ task testTask(){
|
|||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > 20){
|
||||
|
||||
//Wave4();
|
||||
WaveGround1();
|
||||
Wave6();
|
||||
|
||||
wait(15);
|
||||
//SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, 9));
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, 9));
|
||||
//SetCommonData("Ground Loops Cleared", GetCommonData("Ground Loops Cleared", 0)+1);
|
||||
yield;
|
||||
}
|
||||
|
@ -722,16 +742,55 @@ task groundTask(){
|
|||
|
||||
wait(15);
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > 20){
|
||||
|
||||
WaveGround1();
|
||||
wait(max(0, 16-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
|
||||
WaveGround2();
|
||||
wait(max(0, 16-4*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
WaveGround3();
|
||||
|
||||
if(GetCommonData("Ground Loops Cleared", 0) % 2 != 0){
|
||||
|
||||
WaveGround3();
|
||||
wait(max(0, 16-4*rank));
|
||||
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
WaveGround6();
|
||||
wait(max(0, 16-4*rank));
|
||||
|
||||
}
|
||||
|
||||
//if (rank < 3) {SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, 9));}
|
||||
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
|
||||
if((GetCommonData("Ground Loops Cleared", 0) % 3 == 0 && GetCommonData("Ground Loops Cleared", 0) != 0)){
|
||||
|
||||
if(rank > 6){
|
||||
|
||||
WaveGround5();
|
||||
wait(max(0, 16-4*rank));
|
||||
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
WaveGround4();
|
||||
wait(max(0, 16-4*rank));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wait(max(0, 16-4*rank));
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, 9));
|
||||
SetCommonData("Ground Loops Cleared", GetCommonData("Ground Loops Cleared", 0)+1);
|
||||
|
||||
yield;
|
||||
}
|
||||
|
||||
|
@ -747,20 +806,16 @@ task mainTask {
|
|||
task Flying(){
|
||||
while(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) > 20){
|
||||
Wave1();
|
||||
//wait(max(0, 5-1*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
Wave2();
|
||||
//wait(max(0, 5-1*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
//SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, 9));
|
||||
Wave3();
|
||||
//wait(max(0, 5-1*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
Wave4();
|
||||
//wait(max(0, 5-1*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
Wave5();
|
||||
//wait(max(0, 5-1*rank));
|
||||
if(ObjEnemyBossScene_GetInfo(objScene, INFO_TIMER) <= 20){break;}
|
||||
Wave6();
|
||||
SetCommonData("Rank", clamp(GetCommonData("Rank", 1)+1, 1, 9));
|
||||
SetCommonData("Flying Loops Cleared", GetCommonData("Flying Loops Cleared", 0)+1);
|
||||
yield;
|
||||
|
@ -769,10 +824,6 @@ task mainTask {
|
|||
|
||||
}
|
||||
|
||||
function <void> GetReady(){
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Enemy Waves (Ground):
|
||||
|
@ -908,6 +959,84 @@ function <void> WaveGround3(){
|
|||
|
||||
}
|
||||
|
||||
function <void> WaveGround4(){
|
||||
|
||||
ascent(i in 0..2){
|
||||
_LilyWithFairy(
|
||||
35, KEV_AURABALL_GREEN,
|
||||
STG_WIDTH/7 + i*5*STG_WIDTH/7, -256, 6.25+0.2*rank,
|
||||
10-(1+rank/5), 7+0.25*rank, 25-rank, 0.9
|
||||
);
|
||||
}
|
||||
|
||||
wait(max(25, 75-8*rank));
|
||||
|
||||
while(length(enmGround) > 1){yield;}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
function <void> WaveGround5(){
|
||||
|
||||
ascent(i in 0..2){
|
||||
_LilyWithFairy(
|
||||
35, KEV_AURABALL_GREEN,
|
||||
STG_WIDTH/7 + i*5*STG_WIDTH/7, -256, 6.25+0.2*rank,
|
||||
10-(1+rank/5), 7+0.4*rank, 25-rank, 0.9
|
||||
);
|
||||
}
|
||||
|
||||
wait(max(25, 45-5*rank));
|
||||
|
||||
_LilyWithFairy(
|
||||
35, KEV_AURABALL_GREEN,
|
||||
STG_WIDTH/2, -256, 6.25+0.2*rank,
|
||||
10-(1+rank/5), 7+0.4*rank, 25-rank, 0.9
|
||||
);
|
||||
|
||||
wait(max(25, 45-5*rank));
|
||||
|
||||
ascent(i in 0..2){
|
||||
_LilyWithFairy(
|
||||
35, KEV_AURABALL_GREEN,
|
||||
STG_WIDTH/7 + i*5*STG_WIDTH/7, -256, 6.25+0.2*rank,
|
||||
10-(1+rank/5), 7+0.4*rank, 25-rank, 0.9
|
||||
);
|
||||
}
|
||||
|
||||
while(length(enmGround) > 1){yield;}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
function <void> WaveGround6(){
|
||||
|
||||
float spd = 6.2*(1.4+rank/9);
|
||||
|
||||
ascent(i in 0..max(6, rank+2)){
|
||||
|
||||
ascent(i in 0..2){
|
||||
_LilypodWith1Frog(
|
||||
34, KEV_BALL_GREEN,
|
||||
STG_WIDTH/7+5*i*STG_WIDTH/7, -256,
|
||||
[1, 1.25, 1.65][clamp((rank/2)-1, 0, 2)], 7*(1.25+rank/10), 7*(1.25+rank/10)/4, [1, 3][clamp((rank/2)-1, 0, 1)], 1, max(15, trunc(35-(3*rank))), 0.6,
|
||||
spd
|
||||
);
|
||||
}
|
||||
|
||||
wait(max(12, 26-4*rank));
|
||||
|
||||
}
|
||||
|
||||
//wait(max(20, 40-8*rank));
|
||||
|
||||
while(length(enmGround) > 1){yield;}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
function Wave1(){
|
||||
|
||||
task SpawnLine(x){
|
||||
|
@ -1070,6 +1199,67 @@ function Wave5(){
|
|||
|
||||
}
|
||||
|
||||
function Wave6(){
|
||||
|
||||
async{
|
||||
|
||||
wait(max(12*2, (24-4*rank)*2));
|
||||
|
||||
if(rank > 5){
|
||||
|
||||
_LargeDragonGuy(
|
||||
39, [0, 512, 256, 768],
|
||||
STG_WIDTH/5, -128, 8+0.7*rank, 90, max(25, 45-5*rank), 150-10*rank, KEV_LEAF_PURPLE,
|
||||
[3, 4, 5][clamp((rank/2)-1, 0, 2)], 1.15624*4+(1.15624*rank), 6+rank, 6*(1.25+rank/10), 30, 0.9
|
||||
);
|
||||
|
||||
_LargeDragonGuy(
|
||||
39, [256, 512, 512, 768],
|
||||
4*STG_WIDTH/5, -128, 8+0.7*rank, 90, max(25, 45-5*rank), 150-10*rank, KEV_LEAF_ORANGE,
|
||||
[3, 4, 5][clamp((rank/2)-1, 0, 2)], 1.15624*4+(1.15624*rank), 6+rank, 6*(1.25+rank/10),30, 0.9
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
_LargeDragonGuy(
|
||||
39, [0, 512, 256, 768],
|
||||
STG_WIDTH/2, -128, 8+0.7*rank, 90, max(25, 45-5*rank), 150-10*rank, KEV_LEAF_PURPLE,
|
||||
[3, 4, 5][clamp((rank/2)-1, 0, 2)], 1.15624*4+(1.15624*rank), 12+rank, 7.25*(1.25+rank/9), max(15, 40-5*rank), 0.9
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
loop(4){
|
||||
|
||||
_SmallFairyRing(
|
||||
40, KEV_BALL_PINK,
|
||||
-128, 2.5*STG_HEIGHT/8,
|
||||
round(5+1.5*rank), trunc(61.5-(2.5*rank)), 7.5*(1.25+rank/10),
|
||||
6.4*(1.15+rank/9), 0, 0.6
|
||||
);
|
||||
|
||||
_SmallFairyRing(
|
||||
40, KEV_BALL_PINK,
|
||||
STG_WIDTH+128, 2.5*STG_HEIGHT/8,
|
||||
round(5+1.5*rank), trunc(61.5-(2.5*rank)), 6.5*(1.25+rank/10),
|
||||
6.4*(1.15+rank/9), 180, 0.6
|
||||
);
|
||||
|
||||
wait(max(24, 48-4*rank));
|
||||
|
||||
}
|
||||
|
||||
wait(max(12, 24-4*rank));
|
||||
|
||||
while(length(enmFly) > 1){yield;}
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
task _EndShake(shaketime, intensity){
|
||||
|
||||
float baseintensity = intensity;
|
||||
|
@ -1090,4 +1280,25 @@ task _EndShake(shaketime, intensity){
|
|||
yield;
|
||||
}
|
||||
|
||||
task _ObjShake(objID, shaketime, intensity){
|
||||
|
||||
float baseX = ObjMove_GetX(objID);
|
||||
float baseY = ObjMove_GetY(objID);
|
||||
float baseintensity = intensity;
|
||||
float shakeno = shaketime;
|
||||
|
||||
ascent(i in 0..shakeno){
|
||||
ObjMove_SetPosition(objID, baseX + rand(-intensity, intensity), baseY + rand(-intensity, intensity)/2);
|
||||
intensity = Interpolate_Decelerate(0, baseintensity, 1-i/shakeno);
|
||||
shaketime--;
|
||||
yield;
|
||||
}
|
||||
|
||||
while(shaketime > 0){yield;}
|
||||
|
||||
ObjMove_SetPosition(objID, baseX, baseY);
|
||||
|
||||
yield;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
let texEnm = "script/game/resourceLib/EnmTexture.png";
|
||||
LoadTextureEx(texEnm, true, true);
|
||||
|
||||
/*
|
||||
|
||||
|
@ -385,6 +387,8 @@ task _CreateFrog(
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
task _CreateKingFrog(
|
||||
int renderPriority, int[] rect, int graphicBullet,
|
||||
float angSpiral, float delaySpiral, float speedSpiral,
|
||||
|
@ -429,7 +433,7 @@ task _CreateKingFrog(
|
|||
|
||||
float x, y;
|
||||
|
||||
wait(60);
|
||||
wait(60-GetCommonDataPtr(RANK_PTR, 1)*4);
|
||||
|
||||
while(ObjEnemy_GetInfo(enm, INFO_LIFE) > 0){
|
||||
x = ObjMove_GetX(enm);
|
||||
|
@ -437,14 +441,21 @@ task _CreateKingFrog(
|
|||
yield;
|
||||
}
|
||||
|
||||
DeleteShotInCircle(TYPE_SHOT, TYPE_ITEM, x, y, 384);
|
||||
ObjSound_Play(bossBoom);
|
||||
if(GetCommonData("Ground Loops Cleared", 0) % 2 == 0 && GetCommonData("Ground Loops Cleared", 0) != 0){CreateExtendItem(EXTEND_SPELL, x, y);}
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
if(
|
||||
(-128 < x && x < STG_WIDTH+128)
|
||||
&&
|
||||
(-128 < y && y < STG_HEIGHT+128)
|
||||
)
|
||||
{
|
||||
DeleteShotInCircle(TYPE_SHOT, TYPE_ITEM, x, y, 384);
|
||||
ObjSound_Play(bossBoom);
|
||||
if(GetCommonData("Ground Loops Cleared", 0) % 2 == 0 && GetCommonData("Ground Loops Cleared", 0) != 0){CreateExtendItem(EXTEND_SPELL, x, y);}
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wait(60);
|
||||
wait(60-GetCommonDataPtr(RANK_PTR, 1)*4);
|
||||
|
||||
ObjEnemy_SetAutoDelete(enm, true);
|
||||
|
||||
|
@ -540,7 +551,7 @@ task _LilypodWithKingFrog(
|
|||
|
||||
ObjEnemy_SetDamageRate(lilypad, 0, 0);
|
||||
|
||||
wait(15);
|
||||
wait(15-GetCommonDataPtr(RANK_PTR, 1)-1);
|
||||
|
||||
ObjEnemy_SetAutoDelete(lilypad, true);
|
||||
|
||||
|
@ -556,6 +567,220 @@ task _LilypodWithKingFrog(
|
|||
|
||||
}
|
||||
|
||||
function _CreateLilyFairy(
|
||||
int renderPriority, int[] rect, int graphicBullet,
|
||||
float delayBullet, float speedBullet, float acceltimeBullet,
|
||||
float frogX, frogY, speedMoveFrog, scaleBullet
|
||||
){
|
||||
|
||||
// Enemy has NO GRAPHIC
|
||||
|
||||
int enm = _CreateEnemy(
|
||||
frogX, frogY, frogX, frogY, 5,
|
||||
largeEnemyScale, largeEnemyScale,
|
||||
smallEnemyHP, largeEnemyHitbox, 0,
|
||||
texEnm,
|
||||
0, 0, 0, 0);
|
||||
|
||||
Obj_SetRenderPriorityI(enm, renderPriority);
|
||||
|
||||
ObjMove_SetSpeed(enm, speedMoveFrog);
|
||||
ObjMove_SetAngle(enm, 90);
|
||||
|
||||
ObjEnemy_SetDamageRate(enm, 0, 0);
|
||||
|
||||
async{
|
||||
|
||||
async{
|
||||
|
||||
float x = 0, y = 0;
|
||||
|
||||
wait(max(25, 60-GetCommonData("Rank", 1)*5));
|
||||
|
||||
while(ObjEnemy_GetInfo(enm, INFO_LIFE) > 0){
|
||||
x = ObjMove_GetX(enm);
|
||||
y = ObjMove_GetY(enm);
|
||||
yield;
|
||||
}
|
||||
|
||||
if(
|
||||
(-128 < x && x < STG_WIDTH+128)
|
||||
&&
|
||||
(-128 < y && y < STG_HEIGHT+128)
|
||||
)
|
||||
{
|
||||
DeleteShotInCircle(TYPE_SHOT, TYPE_ITEM, x, y, 384);
|
||||
ObjSound_Play(bossBoom);
|
||||
//if(GetCommonData("Ground Loops Cleared", 0) % 2 == 0 && GetCommonData("Ground Loops Cleared", 0) != 0){CreateExtendItem(EXTEND_SPELL, x, y);}
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wait(max(25, 60-GetCommonData("Rank", 1)*5));
|
||||
|
||||
ObjEnemy_SetAutoDelete(enm, true);
|
||||
|
||||
async{
|
||||
|
||||
wait(5);
|
||||
|
||||
while(ObjEnemy_GetInfo(enm, INFO_LIFE) > 0){
|
||||
|
||||
if(ObjMove_GetY(enm) < 11*STG_HEIGHT/12 && ObjMove_GetY(enm) > STG_HEIGHT/12){
|
||||
|
||||
float xspd = rand(-(2+GetCommonDataPtr(RANK_PTR, 1)*0.5), 2+GetCommonDataPtr(RANK_PTR, 1)*0.5);
|
||||
int bullet = CreateShotB2(ObjMove_GetX(enm), ObjMove_GetY(enm), xspd, -speedBullet, 0, speedBullet/(acceltimeBullet/2), xspd, speedBullet*1.5, graphicBullet, 10);
|
||||
|
||||
if(Obj_IsDeleted(enm)){Obj_Delete(bullet); break;}
|
||||
|
||||
else{
|
||||
|
||||
Shoot1;
|
||||
_BulletRescale(bullet, scaleBullet, true, 1);
|
||||
_Delay(bullet, 10);
|
||||
|
||||
}
|
||||
|
||||
wait(delayBullet);
|
||||
|
||||
}
|
||||
|
||||
else{yield;}
|
||||
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_EnemyItemDrop(
|
||||
enm, false,
|
||||
4, 6,
|
||||
round(5+(GetCommonDataPtr(RANK_PTR, 1)-1)*1.25), round(8+(GetCommonDataPtr(RANK_PTR, 1)-1)*2),
|
||||
180, largeEnemyHitbox*2.5
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
return enm;
|
||||
//ObjEnemy_SetDamageRate(enm, 100, 150);
|
||||
|
||||
}
|
||||
|
||||
|
||||
task _LilyWithFairy(
|
||||
int renderFrog, int graphicBullet,
|
||||
float lilyX, lilyY, speedMove,
|
||||
float delayBullet, float speedBullet, float acceltimeBullet, float scaleBullet
|
||||
){
|
||||
|
||||
float offsetX = 80;
|
||||
float offsetY = 70;
|
||||
|
||||
int lilypad = _CreateEnemy(
|
||||
false,
|
||||
lilyX, lilyY, lilyX, lilyY, 5,
|
||||
0.75, 0.75,
|
||||
largeEnemyAltHP, 0, 0,
|
||||
texEnm,
|
||||
2304, 0, 2880, 512);
|
||||
|
||||
Obj_SetRenderPriorityI(lilypad, renderFrog-4);
|
||||
|
||||
ObjMove_SetSpeed(lilypad, speedMove);
|
||||
ObjMove_SetAngle(lilypad, 90);
|
||||
|
||||
ObjEnemy_SetDamageRate(lilypad, 0, 0);
|
||||
|
||||
wait(15-GetCommonDataPtr(RANK_PTR, 1)-1);
|
||||
|
||||
ObjEnemy_SetAutoDelete(lilypad, true);
|
||||
|
||||
async{
|
||||
|
||||
float x = 0, y = 0;
|
||||
|
||||
wait(60);
|
||||
|
||||
while(ObjEnemy_GetInfo(lilypad, INFO_LIFE) > 0){
|
||||
x = ObjMove_GetX(lilypad);
|
||||
y = ObjMove_GetY(lilypad);
|
||||
yield;
|
||||
}
|
||||
|
||||
DeleteShotInCircle(TYPE_SHOT, TYPE_ITEM, x, y, 384);
|
||||
ObjSound_Play(bossBoom);
|
||||
//if(GetCommonData("Ground Loops Cleared", 0) % 2 == 0 && GetCommonData("Ground Loops Cleared", 0) != 0){CreateExtendItem(EXTEND_SPELL, x, y);}
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
|
||||
}
|
||||
|
||||
async{
|
||||
|
||||
int fairy = _CreateLilyFairy(
|
||||
renderFrog, [0, 0, 0, 0], graphicBullet,
|
||||
delayBullet, speedBullet, acceltimeBullet,
|
||||
lilyX, lilyY, speedMove, scaleBullet
|
||||
);
|
||||
|
||||
float x = 0, y = 0;
|
||||
|
||||
while(!Obj_IsDeleted(fairy)){
|
||||
x = ObjMove_GetX(fairy);
|
||||
y = ObjMove_GetY(fairy);
|
||||
yield;
|
||||
}
|
||||
|
||||
if(
|
||||
(-128 < x && x < STG_WIDTH+128)
|
||||
&&
|
||||
(-128 < y && y < STG_HEIGHT+128)
|
||||
)
|
||||
|
||||
{
|
||||
_PostDeath();
|
||||
|
||||
ObjMove_AddPatternA2(lilypad, 0, -speedMove*2, NO_CHANGE, speedMove/30, speedMove*1.25, 0);
|
||||
ObjSprite2D_SetSourceRect(lilypad, 2304, 512, 2880, 1024);
|
||||
_HandleEnemyWellbeing(lilypad, largeEnemyHitbox*2, 0);
|
||||
ObjEnemy_SetDamageRate(lilypad, 100, 100);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
task _PostDeath(){
|
||||
|
||||
async{
|
||||
float spinRate = 9;
|
||||
int i = 0;
|
||||
while(!Obj_IsDeleted(lilypad)){
|
||||
ObjRender_SetAngleZ(lilypad, ObjRender_GetAngleZ(lilypad)+spinRate);
|
||||
spinRate = Interpolate_Decelerate(9, 4, i/240);
|
||||
i = max(240, i+1);
|
||||
yield;
|
||||
}
|
||||
}
|
||||
|
||||
ObjMove_AddPatternA2(lilypad, 0, -speedMove*3, NO_CHANGE, speedMove/15, speedMove*1.25, 0);
|
||||
ObjSprite2D_SetSourceRect(lilypad, 2304, 512, 2880, 1024);
|
||||
Obj_SetRenderPriorityI(lilypad, 41);
|
||||
|
||||
wait(90);
|
||||
|
||||
_HandleEnemyWellbeing(lilypad, largeEnemyHitbox*2, 0);
|
||||
ObjEnemy_SetDamageRate(lilypad, 100, 100);
|
||||
|
||||
}
|
||||
|
||||
_EnemyItemDrop(
|
||||
lilypad, false,
|
||||
6, 12,
|
||||
round(12+(GetCommonDataPtr(RANK_PTR, 1)-1)*1.25), round(14+(GetCommonDataPtr(RANK_PTR, 1)-1)),
|
||||
180, largeEnemyHitbox*3
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
task _LilypodWith4Frogs(
|
||||
int renderFrog, int graphicBullet,
|
||||
|
@ -614,7 +839,6 @@ task _LilypodWith4Frogs(
|
|||
|
||||
}
|
||||
|
||||
|
||||
task _LilypodWith2Frog(
|
||||
int renderFrog, int graphicBullet,
|
||||
float lilyX, float lilyY,
|
||||
|
@ -658,6 +882,44 @@ task _LilypodWith2Frog(
|
|||
|
||||
}
|
||||
|
||||
task _LilypodWith1Frog(
|
||||
int renderFrog, int graphicBullet,
|
||||
float lilyX, float lilyY,
|
||||
float angspaceFan, float speedFan1, float speedFan2, int widthFan, int stackFan, int delayFan, float scaleBullet,
|
||||
float speedMove
|
||||
){
|
||||
|
||||
int lilypad = _CreateEnemy(
|
||||
false,
|
||||
lilyX, lilyY, lilyX, lilyY, 5,
|
||||
0.6, 0.6,
|
||||
999, 0, 0,
|
||||
texEnm,
|
||||
1536, 256, 2048, 768);
|
||||
|
||||
Obj_SetRenderPriorityI(lilypad, renderFrog-4);
|
||||
|
||||
ObjMove_SetSpeed(lilypad, speedMove);
|
||||
ObjMove_SetAngle(lilypad, 90);
|
||||
|
||||
ObjEnemy_SetDamageRate(lilypad, 0, 0);
|
||||
|
||||
wait(1);
|
||||
|
||||
ObjEnemy_SetAutoDelete(lilypad, true);
|
||||
|
||||
async{
|
||||
|
||||
_CreateFrog(
|
||||
renderFrog, [1280, 512, 1536, 768], graphicBullet,
|
||||
angspaceFan, speedFan1, speedFan2, widthFan, stackFan, delayFan,
|
||||
lilyX, lilyY, speedMove, scaleBullet
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Leave this for the boss.
|
||||
|
||||
task _CreateRybbShip(
|
||||
|
@ -817,10 +1079,18 @@ task _LargeFairyAimedFan(
|
|||
yield;
|
||||
}
|
||||
|
||||
DeleteShotInCircle(TYPE_SHOT, TYPE_ITEM, x, y, 256);
|
||||
ObjSound_Play(bossBoom);
|
||||
if(checkBomb){if(GetCommonData("Flying Loops Cleared", 0) % 4 == 0 && GetCommonData("Flying Loops Cleared", 0) != 0){CreateExtendItem(EXTEND_SPELL, x, y);}}
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
if(
|
||||
(-128 < x && x < STG_WIDTH+128)
|
||||
&&
|
||||
(-128 < y && y < STG_HEIGHT+128)
|
||||
)
|
||||
|
||||
{
|
||||
DeleteShotInCircle(TYPE_SHOT, TYPE_ITEM, x, y, 256);
|
||||
ObjSound_Play(bossBoom);
|
||||
if(checkBomb){if(GetCommonData("Flying Loops Cleared", 0) % 4 == 0 && GetCommonData("Flying Loops Cleared", 0) != 0){CreateExtendItem(EXTEND_SPELL, x, y);}}
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -866,6 +1136,114 @@ task _LargeFairyAimedFan(
|
|||
|
||||
}
|
||||
|
||||
task _LargeDragonGuy(
|
||||
int renderPriority, int[] rect,
|
||||
float enmX, float enmY, float spdMove, float angMove, int timeDecel, int timeStay, int graphicBullet,
|
||||
int stackLine, float angOffset, float denseRing, float speedBullet, int delayRing, float scaleBullet
|
||||
){
|
||||
|
||||
// Spawns enemy.
|
||||
|
||||
int enm = _CreateEnemy(
|
||||
enmX, enmY, enmX, enmY, 5,
|
||||
largeEnemyScale*1.1, largeEnemyScale*1.1,
|
||||
largeEnemyHP*1.25, largeEnemyHitbox*1.1, 0,
|
||||
texEnm,
|
||||
rect[0], rect[1], rect[2], rect[3]);
|
||||
|
||||
Obj_SetRenderPriorityI(enm, renderPriority);
|
||||
|
||||
ObjMove_SetSpeed(enm, spdMove*2);
|
||||
ObjMove_SetAngle(enm, angMove);
|
||||
|
||||
ObjEnemy_SetDamageRate(enm, 0, 0);
|
||||
|
||||
async{
|
||||
|
||||
ObjMove_AddPatternA2(enm, 0, NO_CHANGE, NO_CHANGE, -spdMove*2/timeDecel, 0, 0);
|
||||
wait(30+timeStay);
|
||||
ObjMove_AddPatternA2(enm, 0, NO_CHANGE, NO_CHANGE, spdMove/timeDecel, spdMove, 0);
|
||||
|
||||
}
|
||||
|
||||
async{
|
||||
float x = 0, y = 0;
|
||||
|
||||
wait(max(10, 30-GetCommonData("Rank", 0)*5));
|
||||
|
||||
while(ObjEnemy_GetInfo(enm, INFO_LIFE) > 0){
|
||||
x = ObjMove_GetX(enm);
|
||||
y = ObjMove_GetY(enm);
|
||||
yield;
|
||||
}
|
||||
|
||||
if(
|
||||
(-128 < x && x < STG_WIDTH+128)
|
||||
&&
|
||||
(-128 < y && y < STG_HEIGHT+128)
|
||||
)
|
||||
|
||||
{
|
||||
DeleteShotAll(TYPE_SHOT, TYPE_ITEM);
|
||||
ObjSound_Play(bossBoom);
|
||||
TExplosionA(x, y, 10, 0.5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
wait(max(10, 30-GetCommonData("Rank", 0)*5));
|
||||
|
||||
ObjEnemy_SetAutoDelete(enm, true);
|
||||
|
||||
async{
|
||||
|
||||
//wait(5);
|
||||
float baseAng = GetAngleToPlayer(enm);
|
||||
int delay = 0;
|
||||
|
||||
while(ObjEnemy_GetInfo(enm, INFO_LIFE) > 0){
|
||||
|
||||
int delay = 10;
|
||||
|
||||
if(ObjMove_GetY(enm) < 10*STG_HEIGHT/12-100 && ObjMove_GetY(enm) > 1*STG_HEIGHT/12-100){
|
||||
|
||||
ascent(i in 0..stackLine){
|
||||
ascent(j in 0..denseRing){
|
||||
int bullet = CreateShotA1(ObjMove_GetX(enm), ObjMove_GetY(enm), speedBullet, baseAng+j*360/denseRing, graphicBullet, delay);
|
||||
|
||||
_BulletRescale(bullet, scaleBullet, true, 1);
|
||||
_Delay(bullet, 10+delay);
|
||||
|
||||
if(ObjEnemy_GetInfo(enm, INFO_LIFE) <= 0){Obj_Delete(bullet);}
|
||||
else{
|
||||
Shoot2;
|
||||
}
|
||||
}
|
||||
delay += 3;
|
||||
}
|
||||
|
||||
wait(delayRing);
|
||||
baseAng += angOffset;
|
||||
|
||||
}
|
||||
|
||||
else{yield;}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
_EnemyItemDrop(
|
||||
enm, true,
|
||||
15, 6,
|
||||
round(20+(GetCommonDataPtr(RANK_PTR, 1)-1)*2.25), round(12+(GetCommonDataPtr(RANK_PTR, 1)-1)*2),
|
||||
210, largeEnemyHitbox*3
|
||||
);
|
||||
|
||||
//ObjEnemy_SetDamageRate(enm, 100, 150);
|
||||
|
||||
}
|
||||
|
||||
task _WaitForAutoDelete(int shot, int timeWait){
|
||||
ObjShot_SetAutoDelete(shot, false);
|
||||
wait(timeWait);
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 597 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.4 MiB |
|
@ -8,6 +8,8 @@
|
|||
|
||||
#ReplayName["Cirno"]
|
||||
|
||||
#include "script/KevinSystem/kevin_system/Lib_Const.dnh"
|
||||
|
||||
#include "script/KevinSystem/Kevin_PlayerLib.txt"
|
||||
#include "script/KevinSystem/PlayerSoundLib.dnh"
|
||||
|
||||
|
@ -96,6 +98,7 @@ const EV_PIV_2000 = EV_USER + 103i; // What.
|
|||
|
||||
//SetPlayerSpell(99);
|
||||
|
||||
_Countdown();
|
||||
_CAVELaser();
|
||||
_ShotType();
|
||||
//UniversalAlphaHandle(_shotArray);
|
||||
|
@ -120,7 +123,7 @@ const EV_PIV_2000 = EV_USER + 103i; // What.
|
|||
// Delete effect
|
||||
case(EV_DELETE_SHOT_PLAYER){
|
||||
|
||||
if(GetAreaCommonData("Config", "EffectCut", 0) >= 3){}
|
||||
if(GetCommonDataPtr(EFFECTCUT_PTR, 0) >= 3){}
|
||||
|
||||
else{
|
||||
let graphic = GetEventArgument(2);
|
||||
|
@ -182,6 +185,7 @@ const EV_PIV_2000 = EV_USER + 103i; // What.
|
|||
case(EV_PLAYER_REBIRTH){
|
||||
ripplayer = false;
|
||||
SetPlayerInvincibilityFrame(180);
|
||||
//_Countdown();
|
||||
_SigilCall(false, teamimg, 768+256, 512, 768+512, 768, objPlayer, 150);
|
||||
|
||||
}
|
||||
|
@ -466,7 +470,7 @@ task _ShotType(){
|
|||
task UpdateParam(){
|
||||
loop{
|
||||
shotDamage = 2.4+(GetCommonData("Rank", 1)*0.3);
|
||||
shotScale = 0.6+(GetCommonData("Rank", 1)*0.125);
|
||||
shotScale = 0.55+(GetCommonData("Rank", 1)*0.1);
|
||||
shotSpeed = 50+(GetCommonData("Rank", 1)*1.25);
|
||||
wait(60);
|
||||
}
|
||||
|
@ -692,7 +696,7 @@ task parameterrender(){
|
|||
SetPlayerDownStateFrame(60);
|
||||
SetPlayerAutoItemCollectLine(GetStgFrameHeight/3);
|
||||
SetPlayerRebirthLossFrame(0);
|
||||
ObjPlayer_AddIntersectionCircleA1(objPlayer, 0, 0, 1.25, 40);
|
||||
ObjPlayer_AddIntersectionCircleA1(objPlayer, 0, 0, 0, 40);
|
||||
|
||||
}
|
||||
|
||||
|
@ -762,17 +766,19 @@ task _Bomb(){
|
|||
// Preparation
|
||||
SetForbidPlayerShot(true);
|
||||
SetForbidPlayerSpell(true);
|
||||
SetPlayerInvincibilityFrame(240);
|
||||
SetPlayerInvincibilityFrame(270);
|
||||
// Spell object
|
||||
let manageObj = GetSpellManageObject(); // SPELL BEGINS
|
||||
ObjSpell_Regist(manageObj);
|
||||
//ObjSound_Play(bombsfx);
|
||||
SetPlayerSpeed(PlayerSpd[0]*1.5, PlayerSpd[1]*1.5);
|
||||
SetPlayerSpeed(PlayerSpd[0]*2, PlayerSpd[1]*2);
|
||||
|
||||
// 180 seconds DEATH LASER
|
||||
|
||||
//SetCommonData("IsBomb", true);
|
||||
|
||||
//_Countdown(270);
|
||||
|
||||
async{
|
||||
loop(90){
|
||||
Fire();
|
||||
|
@ -782,7 +788,7 @@ task _Bomb(){
|
|||
}
|
||||
|
||||
task Fire(){
|
||||
let shotA = CreatePlayerShotA1(playerX, playerY, 25, rand(-15, 195), shotDamage/10, 25, 2);
|
||||
let shotA = CreatePlayerShotA1(playerX, playerY, 25, rand(-15, 195), shotDamage/20, 25, 2);
|
||||
_BulletRescalePlayer(shotA, 1.25, true, 1);
|
||||
ObjRender_SetAlpha(shotA, 255);
|
||||
Fading(shotA);
|
||||
|
@ -811,15 +817,41 @@ task _Bomb(){
|
|||
|
||||
SetPlayerSpeed(PlayerSpd[0], PlayerSpd[1]);
|
||||
SetForbidPlayerShot(false);
|
||||
//SetCommonData("IsBomb", false);
|
||||
Obj_Delete(manageObj); // !!! IMPORTANT !!!
|
||||
wait(60);
|
||||
SetForbidPlayerSpell(false);
|
||||
Obj_Delete(manageObj); // !!! IMPORTANT !!!
|
||||
|
||||
}
|
||||
|
||||
// Screenshake function for bomb's duration - adapted from Sparen's tutorials
|
||||
|
||||
task _Countdown(){
|
||||
|
||||
//int timer = time;
|
||||
int counter = CreateTextObject(
|
||||
playerX, playerY, 58,
|
||||
"", "Origami Mommy",
|
||||
0xFFFFFF, 0xFFFFFF,
|
||||
0x1AEC8C, 10,
|
||||
Obj_GetRenderPriorityI(objPlayer)+1
|
||||
);
|
||||
|
||||
ObjText_SetHorizontalAlignment(counter, ALIGNMENT_CENTER);
|
||||
|
||||
while(true){
|
||||
|
||||
if(GetPlayerInvincibilityFrame() <= 0){Obj_SetVisible(counter, false);}
|
||||
else{Obj_SetVisible(counter, true);}
|
||||
ObjRender_SetPosition(counter, playerX, playerY - 140, 1);
|
||||
ObjText_SetText(counter, IntToString(GetPlayerInvincibilityFrame()));
|
||||
yield;
|
||||
|
||||
}
|
||||
|
||||
//Obj_Delete(counter);
|
||||
|
||||
}
|
||||
|
||||
task _BombShake(shaketime, intensity){
|
||||
|
||||
float baseintensity = intensity;
|
||||
|
@ -840,3 +872,27 @@ task _BombShake(shaketime, intensity){
|
|||
yield;
|
||||
}
|
||||
|
||||
function CreateTextObject(
|
||||
float mx, my, size,
|
||||
string text, font,
|
||||
int colorTop, colorBottom,
|
||||
int borderColor, borderWidth,
|
||||
int renderPriority
|
||||
){
|
||||
|
||||
let obj = ObjText_Create();
|
||||
ObjText_SetText(obj, text);
|
||||
ObjText_SetFontSize(obj, size);
|
||||
ObjText_SetFontType(obj, font);
|
||||
ObjText_SetFontColorTop(obj, colorTop);
|
||||
ObjText_SetFontColorBottom(obj, colorBottom);
|
||||
ObjText_SetFontBorderType(obj, BORDER_FULL);
|
||||
ObjText_SetFontBorderColor(obj, borderColor);
|
||||
ObjText_SetFontBorderWidth(obj, borderWidth);
|
||||
Obj_SetRenderPriorityI(obj, renderPriority);
|
||||
ObjRender_SetX(obj, mx);
|
||||
ObjRender_SetY(obj, my);
|
||||
return obj;
|
||||
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
BIN
th_dnh_ph3sx.log
BIN
th_dnh_ph3sx.log
Binary file not shown.
Loading…
Reference in New Issue