Update 1.01a Content Complete.
This commit is contained in:
parent
dba085c30f
commit
c6c87d7c2f
20 changed files with 698 additions and 59 deletions
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);
|
||||
|
|
BIN
script/game/PackageLib/Manual_JP.png
Normal file
BIN
script/game/PackageLib/Manual_JP.png
Normal file
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…
Add table
Add a link
Reference in a new issue