generated from sigonasr2/CPlusPlusProjectTemplate
Pre-release build finished
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
d197c14077
commit
4e5a0eef43
@ -20,6 +20,7 @@ using namespace olc;
|
|||||||
#define SKIP_STORYBOOK true
|
#define SKIP_STORYBOOK true
|
||||||
#define SKIP_CHAPTER3 true
|
#define SKIP_CHAPTER3 true
|
||||||
#define SKIP_LAUNCHPAD true
|
#define SKIP_LAUNCHPAD true
|
||||||
|
#define SKIP_A_A true
|
||||||
|
|
||||||
#define STARTING_MAP MAP_1
|
#define STARTING_MAP MAP_1
|
||||||
#define STARTING_STATE CUTSCENE_3
|
#define STARTING_STATE CUTSCENE_3
|
||||||
@ -61,6 +62,8 @@ enum GAMESTATE{
|
|||||||
DISPLAY_BOOK2,
|
DISPLAY_BOOK2,
|
||||||
CUTSCENE_6,
|
CUTSCENE_6,
|
||||||
IN_SPACE,
|
IN_SPACE,
|
||||||
|
FIN,
|
||||||
|
THANKS
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace cutscene{
|
namespace cutscene{
|
||||||
@ -101,7 +104,8 @@ namespace cutscene{
|
|||||||
READY_TO_BOARD,
|
READY_TO_BOARD,
|
||||||
INTRUDERS_DETECTED,
|
INTRUDERS_DETECTED,
|
||||||
A_A_ENCOUNTER,
|
A_A_ENCOUNTER,
|
||||||
A_A_TRANSFORM
|
A_A_TRANSFORM,
|
||||||
|
ROVER_SAVE,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +153,7 @@ namespace gameflag{
|
|||||||
BOARDED_ROCKET,
|
BOARDED_ROCKET,
|
||||||
INTRUDER_DETECTED,
|
INTRUDER_DETECTED,
|
||||||
DEFEATED_Y_Y,
|
DEFEATED_Y_Y,
|
||||||
|
DEFEATED_A_A,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -666,6 +671,7 @@ public:
|
|||||||
int LOCKED_IN_DELAY=0;
|
int LOCKED_IN_DELAY=0;
|
||||||
Pixel SHIP_COLOR=WHITE;
|
Pixel SHIP_COLOR=WHITE;
|
||||||
vf2d BOSS_SIZE={1,1};
|
vf2d BOSS_SIZE={1,1};
|
||||||
|
vf2d CREDITS_SCROLLING_OFFSET={0,12};
|
||||||
|
|
||||||
Map*MAP_1=new Map("map1");
|
Map*MAP_1=new Map("map1");
|
||||||
Map*MAP_2=new Map("map2");
|
Map*MAP_2=new Map("map2");
|
||||||
@ -987,6 +993,16 @@ public:
|
|||||||
PLAYER_COORDS[1]=1000;
|
PLAYER_COORDS[1]=1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (SKIP_A_A) {
|
||||||
|
GAME_FLAGS[gameflag::INTRUDER_DETECTED]=true;
|
||||||
|
GAME_FLAGS[gameflag::DEFEATED_Y_Y]=true;
|
||||||
|
GAME_FLAGS[gameflag::DEFEATED_A_A]=true;
|
||||||
|
fadeIn();
|
||||||
|
StartCutscene(cutscene::ROVER_SAVE);
|
||||||
|
SHIP_COLOR=Pixel(0,0,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
PETAL_STORM->seedProduction=2; //Produce two seeds.
|
PETAL_STORM->seedProduction=2; //Produce two seeds.
|
||||||
HURRICANE->seedScatter=2;
|
HURRICANE->seedScatter=2;
|
||||||
HURRICANE->growSeeds=true;
|
HURRICANE->growSeeds=true;
|
||||||
@ -1539,6 +1555,10 @@ public:
|
|||||||
fadeIn();
|
fadeIn();
|
||||||
GAME_STATE=GAMEWORLD;
|
GAME_STATE=GAMEWORLD;
|
||||||
}break;
|
}break;
|
||||||
|
case FIN:{
|
||||||
|
GAME_STATE=THANKS;
|
||||||
|
fadeIn();
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
switch (CURRENT_CUTSCENE) {
|
switch (CURRENT_CUTSCENE) {
|
||||||
case cutscene::TRANSITION_CUTSCENE:{
|
case cutscene::TRANSITION_CUTSCENE:{
|
||||||
@ -1686,6 +1706,12 @@ public:
|
|||||||
fadeIn();
|
fadeIn();
|
||||||
EndCutscene();
|
EndCutscene();
|
||||||
}break;
|
}break;
|
||||||
|
case cutscene::ROVER_SAVE:{
|
||||||
|
GAME_STATE=FIN;
|
||||||
|
TIMER=0;
|
||||||
|
fadeIn();
|
||||||
|
EndCutscene();
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2205,7 +2231,7 @@ public:
|
|||||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||||
effectRadius({(int)BATTLE_PLAYER_COORDS.x,(int)BATTLE_PLAYER_COORDS.y},ref,-healRoll,true);
|
effectRadius({(int)BATTLE_PLAYER_COORDS.x,(int)BATTLE_PLAYER_COORDS.y},ref,-healRoll,true);
|
||||||
} else {
|
} else {
|
||||||
effectRadius({CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->x+CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->width*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.x/2/32,CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->y+CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->height*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.y/2/32},ref,-healRoll,false);
|
effectRadius({(int)(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->x+CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->width*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.x/2/32),(int)(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->y+CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->height*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.y/2/32)},ref,-healRoll,false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (EFFECT_TIMER==30&&(
|
if (EFFECT_TIMER==30&&(
|
||||||
@ -2214,7 +2240,7 @@ public:
|
|||||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||||
effectRadius({(int)BATTLE_PLAYER_COORDS.x,(int)BATTLE_PLAYER_COORDS.y},ref,true);
|
effectRadius({(int)BATTLE_PLAYER_COORDS.x,(int)BATTLE_PLAYER_COORDS.y},ref,true);
|
||||||
} else {
|
} else {
|
||||||
effectRadius({CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->x+CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->width*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.x/2/32,CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->y+CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->height*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.y/2/32},ref,false);
|
effectRadius({(int)(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->x+CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->width*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.x/2/32),(int)(CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->y+CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr->sprite->height*CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->sprScale.y/2/32)},ref,false);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (EFFECT_TIMER==ref->effectTime-10){
|
if (EFFECT_TIMER==ref->effectTime-10){
|
||||||
@ -2227,11 +2253,11 @@ public:
|
|||||||
|
|
||||||
}
|
}
|
||||||
if (PLAYER_SELECTED_TARGET==-2) {
|
if (PLAYER_SELECTED_TARGET==-2) {
|
||||||
effectRadius({CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY},ref,true);
|
effectRadius({(int)(CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX),(int)(CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY)},ref,true);
|
||||||
} else {
|
} else {
|
||||||
effectRadius({CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->x+CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->spr->sprite->width*CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->sprScale.x/2/32,CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->y+CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->spr->sprite->height*CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->sprScale.y/2/32},ref,true); }
|
effectRadius({(int)(CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->x+CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->spr->sprite->width*CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->sprScale.x/2/32),(int)(CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->y+CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->spr->sprite->height*CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->sprScale.y/2/32)},ref,true); }
|
||||||
} else {
|
} else {
|
||||||
effectRadius({CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY},ref,false);
|
effectRadius({(int)(CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX),(int)(CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY)},ref,false);
|
||||||
if (ref==LIGHT_STORM&&CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->name.compare("X_X")==0) {
|
if (ref==LIGHT_STORM&&CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->name.compare("X_X")==0) {
|
||||||
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr=X_X_UNCHARGED_DECAL;
|
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr=X_X_UNCHARGED_DECAL;
|
||||||
} else
|
} else
|
||||||
@ -2394,6 +2420,7 @@ public:
|
|||||||
if (allDead) {
|
if (allDead) {
|
||||||
bool snakeFight=false;
|
bool snakeFight=false;
|
||||||
bool YYFight=false;
|
bool YYFight=false;
|
||||||
|
bool AAFight=false;
|
||||||
if (!GAME_FLAGS[gameflag::LITTLESNAKES_KILLED]) {
|
if (!GAME_FLAGS[gameflag::LITTLESNAKES_KILLED]) {
|
||||||
for (int i=0;i<CURRENT_ENCOUNTER.entities.size();i++) {
|
for (int i=0;i<CURRENT_ENCOUNTER.entities.size();i++) {
|
||||||
if (CURRENT_ENCOUNTER.entities[i]->name.compare("Sidewinder")==0) {
|
if (CURRENT_ENCOUNTER.entities[i]->name.compare("Sidewinder")==0) {
|
||||||
@ -2424,6 +2451,21 @@ public:
|
|||||||
SHIP_COLOR=Pixel(89, 55, 36,255);
|
SHIP_COLOR=Pixel(89, 55, 36,255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!GAME_FLAGS[gameflag::DEFEATED_A_A]) {
|
||||||
|
for (int i=0;i<CURRENT_ENCOUNTER.entities.size();i++) {
|
||||||
|
if (CURRENT_ENCOUNTER.entities[i]->name.compare("A.A")==0) {
|
||||||
|
AAFight=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (AAFight) {
|
||||||
|
GAME_FLAGS[gameflag::DEFEATED_A_A]=true;
|
||||||
|
StartCutscene(cutscene::ROVER_SAVE);
|
||||||
|
for (int i=0;i<150;i++) {
|
||||||
|
starpixels[i]->spd={range(-2,0),range(-0.1,0)};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
IN_BATTLE_ENCOUNTER=false;
|
IN_BATTLE_ENCOUNTER=false;
|
||||||
ENCOUNTERS.erase(ENCOUNTERS.begin()+CURRENT_ENCOUNTER_IND);
|
ENCOUNTERS.erase(ENCOUNTERS.begin()+CURRENT_ENCOUNTER_IND);
|
||||||
resetBattleState();
|
resetBattleState();
|
||||||
@ -2973,8 +3015,8 @@ public:
|
|||||||
} else
|
} else
|
||||||
if (TIMER<240) {
|
if (TIMER<240) {
|
||||||
BOSS_SIZE={
|
BOSS_SIZE={
|
||||||
std::clamp(TIMER/240.0+1,1.0,2.0),
|
(float)std::clamp(TIMER/240.0+1,1.0,2.0),
|
||||||
std::clamp(TIMER/240.0+1,1.0,2.0)
|
(float)std::clamp(TIMER/240.0+1,1.0,2.0)
|
||||||
};
|
};
|
||||||
SHIP_COLOR=Pixel(255,255,255,(1-(TIMER/240.0))*255);
|
SHIP_COLOR=Pixel(255,255,255,(1-(TIMER/240.0))*255);
|
||||||
} else {
|
} else {
|
||||||
@ -2990,6 +3032,48 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case cutscene::ROVER_SAVE:{
|
||||||
|
if (!CUTSCENE_FLAGS[0]) {
|
||||||
|
CUTSCENE_OBJS[0]=CreateObject({PLAYER_COORDS[0],PLAYER_COORDS[1]},PLAYER_DECAL,playerAnimDown,true);
|
||||||
|
CUTSCENE_OBJS[1]=CreateObject({PLAYER_COORDS[0]-5,PLAYER_COORDS[1]},ROVER_DECAL,true);
|
||||||
|
CUTSCENE_FLAGS[0]=true;
|
||||||
|
} else {
|
||||||
|
if (!CUTSCENE_FLAGS[1]) {
|
||||||
|
if (CUTSCENE_OBJS[1]->x<PLAYER_COORDS[0]-0.5) {
|
||||||
|
CUTSCENE_OBJS[1]->x+=0.02;
|
||||||
|
} else {
|
||||||
|
CUTSCENE_FLAGS[1]=true;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (!messageBoxVisible) {
|
||||||
|
if (!CUTSCENE_FLAGS[2]) {
|
||||||
|
CUTSCENE_FLAGS[2]=true;
|
||||||
|
DisplayMessageBox(63);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[3]) {
|
||||||
|
CUTSCENE_FLAGS[3]=true;
|
||||||
|
DisplayMessageBox(64);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[4]) {
|
||||||
|
CUTSCENE_FLAGS[4]=true;
|
||||||
|
DisplayMessageBox(65);
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[5]) {
|
||||||
|
CUTSCENE_OBJS[0]->x=0;
|
||||||
|
if (CUTSCENE_OBJS[1]->x<PLAYER_COORDS[0]+4) {
|
||||||
|
CUTSCENE_OBJS[1]->x+=0.06;
|
||||||
|
} else {
|
||||||
|
CUTSCENE_FLAGS[5]=true;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (!CUTSCENE_FLAGS[6]) {
|
||||||
|
CUTSCENE_FLAGS[6]=true;
|
||||||
|
fadeOut();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CUTSCENE_OBJS[1]->y=cos(M_PI/90*CUTSCENE_TIMER-M_PI)*0.5+PLAYER_COORDS[1];
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GAME_STATE==CUTSCENE_3&&!SOUND_IS_PLAYING) {
|
if (GAME_STATE==CUTSCENE_3&&!SOUND_IS_PLAYING) {
|
||||||
@ -3111,9 +3195,13 @@ public:
|
|||||||
hitEdge=true;
|
hitEdge=true;
|
||||||
}
|
}
|
||||||
if (hitEdge) {
|
if (hitEdge) {
|
||||||
|
if (GAME_FLAGS[gameflag::DEFEATED_A_A]) {
|
||||||
|
starpixels[i]->pos={WIDTH,range(0,HEIGHT)};
|
||||||
|
} else {
|
||||||
starpixels[i]->pos={WIDTH/2,HEIGHT/2-24};
|
starpixels[i]->pos={WIDTH/2,HEIGHT/2-24};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (TIMER>300) {
|
if (TIMER>300) {
|
||||||
if (!GAME_FLAGS[gameflag::INTRUDER_DETECTED]) {
|
if (!GAME_FLAGS[gameflag::INTRUDER_DETECTED]) {
|
||||||
GAME_FLAGS[gameflag::INTRUDER_DETECTED]=true;
|
GAME_FLAGS[gameflag::INTRUDER_DETECTED]=true;
|
||||||
@ -3122,6 +3210,12 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case FIN:{
|
||||||
|
CREDITS_SCROLLING_OFFSET.y-=0.15;
|
||||||
|
if (CREDITS_SCROLLING_OFFSET.y*-1>GetTextSize(CREDITS_TEXT).y*2+24) {
|
||||||
|
fadeOut();
|
||||||
|
}
|
||||||
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PIXEL_EFFECT_TRANSPARENCY>0) {
|
if (PIXEL_EFFECT_TRANSPARENCY>0) {
|
||||||
@ -3300,10 +3394,10 @@ public:
|
|||||||
DrawDecal({(float)(WIDTH/2-LATER_THAT_NIGHT_DECAL->sprite->width/2),(float)(HEIGHT/2-LATER_THAT_NIGHT_DECAL->sprite->height/2)},LATER_THAT_NIGHT_DECAL);
|
DrawDecal({(float)(WIDTH/2-LATER_THAT_NIGHT_DECAL->sprite->width/2),(float)(HEIGHT/2-LATER_THAT_NIGHT_DECAL->sprite->height/2)},LATER_THAT_NIGHT_DECAL);
|
||||||
}break;
|
}break;
|
||||||
case DISPLAY_BOOK:{
|
case DISPLAY_BOOK:{
|
||||||
DrawDecal({WIDTH/2-BOOK_DECAL->sprite->width*2/2,HEIGHT/2-BOOK_DECAL->sprite->height*2/2},BOOK_DECAL,{2,2});
|
DrawDecal({(float)(WIDTH/2-BOOK_DECAL->sprite->width*2/2),(float)(HEIGHT/2-BOOK_DECAL->sprite->height*2/2)},BOOK_DECAL,{2,2});
|
||||||
}break;
|
}break;
|
||||||
case DISPLAY_BOOK2:{
|
case DISPLAY_BOOK2:{
|
||||||
DrawDecal({WIDTH/2-BOOK2_DECAL->sprite->width*2/2,HEIGHT/2-BOOK2_DECAL->sprite->height*2/2},BOOK2_DECAL,{2,2});
|
DrawDecal({(float)(WIDTH/2-BOOK2_DECAL->sprite->width*2/2),(float)(HEIGHT/2-BOOK2_DECAL->sprite->height*2/2)},BOOK2_DECAL,{2,2});
|
||||||
}break;
|
}break;
|
||||||
case IN_SPACE:{
|
case IN_SPACE:{
|
||||||
SetDrawTarget(2);
|
SetDrawTarget(2);
|
||||||
@ -3323,6 +3417,23 @@ public:
|
|||||||
DrawStringDecal({(float)((BATTLE_PLAYER_COORDS.x-PLAYER_COORDS[0])*32+WIDTH/2-16+(current_playerAnim->flipped?32:0)),(float)((BATTLE_PLAYER_COORDS.y-PLAYER_COORDS[1])*32+HEIGHT/2-16-sin(frameCount*12/60.0)*4-12)},"!!",RED);
|
DrawStringDecal({(float)((BATTLE_PLAYER_COORDS.x-PLAYER_COORDS[0])*32+WIDTH/2-16+(current_playerAnim->flipped?32:0)),(float)((BATTLE_PLAYER_COORDS.y-PLAYER_COORDS[1])*32+HEIGHT/2-16-sin(frameCount*12/60.0)*4-12)},"!!",RED);
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
|
case FIN:{
|
||||||
|
|
||||||
|
DrawStringDecal({CREDITS_SCROLLING_OFFSET.x+WIDTH/2-GetTextSize(CREDITS_TEXT).x*2/2,CREDITS_SCROLLING_OFFSET.y},CREDITS_TEXT,WHITE,{2,2});
|
||||||
|
|
||||||
|
GradientFillRectDecal({0,0},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
|
GradientFillRectDecal({WIDTH/2,0},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
|
GradientFillRectDecal({0,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2});
|
||||||
|
GradientFillRectDecal({WIDTH/2,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
|
}break;
|
||||||
|
case THANKS:{
|
||||||
|
DrawStringDecal({(float)(WIDTH/2-GetTextSize(THANKS_TEXT).x*3/2),(float)(HEIGHT/2-GetTextSize(THANKS_TEXT).y*3/2)},THANKS_TEXT,WHITE,{3,3});
|
||||||
|
|
||||||
|
GradientFillRectDecal({0,0},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
|
GradientFillRectDecal({WIDTH/2,0},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
|
GradientFillRectDecal({0,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN2});
|
||||||
|
GradientFillRectDecal({WIDTH/2,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch (BATTLE_STATE) {
|
switch (BATTLE_STATE) {
|
||||||
case battle::PLAYER_SELECTION:{
|
case battle::PLAYER_SELECTION:{
|
||||||
@ -3375,17 +3486,17 @@ public:
|
|||||||
DrawStringDecal({4+1,(float)(HEIGHT-10-GetTextSize("HP:").y+1)},"HP: "+std::to_string(PLAYER_HP),BLACK);
|
DrawStringDecal({4+1,(float)(HEIGHT-10-GetTextSize("HP:").y+1)},"HP: "+std::to_string(PLAYER_HP),BLACK);
|
||||||
DrawStringDecal({4,(float)(HEIGHT-10-GetTextSize("HP:").y)},"HP: "+std::to_string(PLAYER_HP));
|
DrawStringDecal({4,(float)(HEIGHT-10-GetTextSize("HP:").y)},"HP: "+std::to_string(PLAYER_HP));
|
||||||
DrawHealthbar({2,HEIGHT-10},WIDTH/2,(float)PLAYER_HP/PLAYER_MAXHP,BLACK);
|
DrawHealthbar({2,HEIGHT-10},WIDTH/2,(float)PLAYER_HP/PLAYER_MAXHP,BLACK);
|
||||||
DrawBuffs({48+GetTextSize(std::to_string(PLAYER_HP)).x,HEIGHT-26});
|
DrawBuffs({(float)(48+GetTextSize(std::to_string(PLAYER_HP)).x),(float)(HEIGHT-26)});
|
||||||
for (auto&numb:BATTLE_DISPLAY_NUMBERS) {
|
for (auto&numb:BATTLE_DISPLAY_NUMBERS) {
|
||||||
std::string display=((numb->number>0)?"-"+std::to_string(numb->number):"+"+std::to_string(numb->number*-1));
|
std::string display=((numb->number>0)?"-"+std::to_string(numb->number):"+"+std::to_string(numb->number*-1));
|
||||||
for (int x=-1;x<=1;x++) {
|
for (int x=-1;x<=1;x++) {
|
||||||
for (int y=-1;y<=1;y++) {
|
for (int y=-1;y<=1;y++) {
|
||||||
if (x!=0&&y!=0) {
|
if (x!=0&&y!=0) {
|
||||||
DrawStringDecal({((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x*1.3/2+x-8,((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-12-GetTextSize(display).y*1.3/2+y},display,(numb->number>0)?Pixel(255,0,0,numb->alpha):Pixel(0,255,0,numb->alpha),{1.3,1.3});
|
DrawStringDecal({(float)(((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x*1.3/2+x-8),(float)(((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-12-GetTextSize(display).y*1.3/2+y)},display,(numb->number>0)?Pixel(255,0,0,numb->alpha):Pixel(0,255,0,numb->alpha),{1.3,1.3});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DrawStringDecal({((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x*1.3/2-8,((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-12-GetTextSize(display).y*1.3/2},display,Pixel(255,255,255,numb->alpha),{1.3,1.3});
|
DrawStringDecal({(float)(((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x*1.3/2-8),(float)(((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-12-GetTextSize(display).y*1.3/2)},display,Pixel(255,255,255,numb->alpha),{1.3,1.3});
|
||||||
//std::cout<<numb->x<<"/"<<numb->y<<" "<<(((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x/2)<<","<<(((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-8-GetTextSize(display).y/2)<<": ("<<numb->alpha<<")"<<display<<"\n";
|
//std::cout<<numb->x<<"/"<<numb->y<<" "<<(((numb->x-PLAYER_COORDS[0])*32+WIDTH/2)-GetTextSize(display).x/2)<<","<<(((numb->y-PLAYER_COORDS[1])*32+HEIGHT/2)-8-GetTextSize(display).y/2)<<": ("<<numb->alpha<<")"<<display<<"\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3425,16 +3536,16 @@ public:
|
|||||||
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,192));
|
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,192));
|
||||||
}break;
|
}break;
|
||||||
case cutscene::LAUNCHPAD_OPEN:{
|
case cutscene::LAUNCHPAD_OPEN:{
|
||||||
DrawDecal({(30-PLAYER_COORDS[0])*32+WIDTH/2,(35-PLAYER_COORDS[1])*32+HEIGHT/2+(6-6*((CUTSCENE_TIMER/240.0)))},LAUNCHPAD_CLOSED_DECAL,{1,1},Pixel(255,255,255,(CUTSCENE_TIMER/480.0)*255));
|
DrawDecal({(float)((30-PLAYER_COORDS[0])*32+WIDTH/2),(float)((35-PLAYER_COORDS[1])*32+HEIGHT/2+(6-6*((CUTSCENE_TIMER/240.0))))},LAUNCHPAD_CLOSED_DECAL,{1,1},Pixel(255,255,255,(CUTSCENE_TIMER/480.0)*255));
|
||||||
}break;
|
}break;
|
||||||
case cutscene::LAUNCHPAD_PREPARE:{
|
case cutscene::LAUNCHPAD_PREPARE:{
|
||||||
int bottomCutoff = (int)(std::clamp(CUTSCENE_TIMER,0,600)/600.0*64);
|
int bottomCutoff = (int)(std::clamp(CUTSCENE_TIMER,0,600)/600.0*64);
|
||||||
DrawPartialDecal({(30-PLAYER_COORDS[0])*32+WIDTH/2,(36.5-PLAYER_COORDS[1])*32+HEIGHT/2-bottomCutoff},{64,bottomCutoff},Y_Y_DECAL,{0,0},{64,bottomCutoff},Pixel(std::clamp(CUTSCENE_TIMER,0,600)/600.0*255,std::clamp(CUTSCENE_TIMER,0,600)/600.0*255,std::clamp(CUTSCENE_TIMER,0,600)/600.0*255,255));
|
DrawPartialDecal({(float)((30-PLAYER_COORDS[0])*32+WIDTH/2),(float)((36.5-PLAYER_COORDS[1])*32+HEIGHT/2-bottomCutoff)},{64,(float)bottomCutoff},Y_Y_DECAL,{0,0},{64,(float)bottomCutoff},Pixel(std::clamp(CUTSCENE_TIMER,0,600)/600.0*255,std::clamp(CUTSCENE_TIMER,0,600)/600.0*255,std::clamp(CUTSCENE_TIMER,0,600)/600.0*255,255));
|
||||||
}break;
|
}break;
|
||||||
case cutscene::READY_TO_BOARD:{
|
case cutscene::READY_TO_BOARD:{
|
||||||
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,128));
|
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,128));
|
||||||
DrawStringDecal({8,HEIGHT/4},"ARE YOU PREPARED ?");
|
DrawStringDecal({8,HEIGHT/4},"ARE YOU PREPARED ?");
|
||||||
DrawStringDecal({8,HEIGHT/2+((ROCKET_BOARD_OPTION)?0:16)},">");
|
DrawStringDecal({(float)8,(float)(HEIGHT/2+((ROCKET_BOARD_OPTION)?0:16))},">");
|
||||||
DrawStringDecal({16,HEIGHT/2},"YES");
|
DrawStringDecal({16,HEIGHT/2},"YES");
|
||||||
DrawStringDecal({16,HEIGHT/2+16},"NO");
|
DrawStringDecal({16,HEIGHT/2+16},"NO");
|
||||||
|
|
||||||
@ -3494,7 +3605,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (IN_BATTLE_ENCOUNTER) {
|
if (IN_BATTLE_ENCOUNTER) {
|
||||||
const vi2d CENTER = {(float)((BATTLE_PLAYER_COORDS.x-PLAYER_COORDS[0])*32+WIDTH/2+(current_playerAnim->flipped?32:0)),(float)((BATTLE_PLAYER_COORDS.y-PLAYER_COORDS[1])*32+HEIGHT/2)};
|
const vi2d CENTER = {(int)((float)((BATTLE_PLAYER_COORDS.x-PLAYER_COORDS[0])*32+WIDTH/2+(current_playerAnim->flipped?32:0))),(int)((float)((BATTLE_PLAYER_COORDS.y-PLAYER_COORDS[1])*32+HEIGHT/2))};
|
||||||
for (int i=0;i<SEEDS.size();i++) {
|
for (int i=0;i<SEEDS.size();i++) {
|
||||||
DrawDecal(SEEDS[i]->pos+CENTER,SEED_DECAL,{0.5,0.5});
|
DrawDecal(SEEDS[i]->pos+CENTER,SEED_DECAL,{0.5,0.5});
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 10 MiB After Width: | Height: | Size: 11 MiB |
File diff suppressed because one or more lines are too long
Binary file not shown.
37
data.h
37
data.h
@ -62,6 +62,34 @@ Transferring Beacon Signal...
|
|||||||
|
|
||||||
Press any key to continue.)";
|
Press any key to continue.)";
|
||||||
|
|
||||||
|
std::string CREDITS_TEXT=R"(
|
||||||
|
F I N .
|
||||||
|
|
||||||
|
PGE
|
||||||
|
javidx9
|
||||||
|
|
||||||
|
G A M E
|
||||||
|
sigonasr2
|
||||||
|
|
||||||
|
THANKS TO ALL
|
||||||
|
OLC
|
||||||
|
COMMUNITY
|
||||||
|
MEMBERS FOR
|
||||||
|
MOTIVATION
|
||||||
|
AND SUPPORT
|
||||||
|
|
||||||
|
M A D E
|
||||||
|
FOR
|
||||||
|
olc::CodeJam
|
||||||
|
2022!
|
||||||
|
|
||||||
|
)";
|
||||||
|
|
||||||
|
std::string THANKS_TEXT=R"(
|
||||||
|
Thanks
|
||||||
|
for
|
||||||
|
playing!)";
|
||||||
|
|
||||||
std::string STORY_DIALOG[]={R"(
|
std::string STORY_DIALOG[]={R"(
|
||||||
???
|
???
|
||||||
RAIN CYCLE COMMENCING)", //0
|
RAIN CYCLE COMMENCING)", //0
|
||||||
@ -251,6 +279,15 @@ A.A
|
|||||||
R"(
|
R"(
|
||||||
A.A
|
A.A
|
||||||
HUMAN! IF YOU TRULY DESERVE TO LEAVE THIS PLANET, THEN PROVE IT TO US. SHOW US YOU ARE WORTHY.)",//62
|
HUMAN! IF YOU TRULY DESERVE TO LEAVE THIS PLANET, THEN PROVE IT TO US. SHOW US YOU ARE WORTHY.)",//62
|
||||||
|
R"(
|
||||||
|
R.O.V.E.R. 2001
|
||||||
|
Save Human.)",//63
|
||||||
|
R"(
|
||||||
|
$PLAYER
|
||||||
|
R.O.V.E.R can fly?! That's awesome! Thanks for saving me...)",//64
|
||||||
|
R"(
|
||||||
|
$PLAYER
|
||||||
|
Next destination... Home. My True Home!)",//65
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user