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_CHAPTER3 true
|
||||
#define SKIP_LAUNCHPAD true
|
||||
#define SKIP_A_A true
|
||||
|
||||
#define STARTING_MAP MAP_1
|
||||
#define STARTING_STATE CUTSCENE_3
|
||||
@ -61,6 +62,8 @@ enum GAMESTATE{
|
||||
DISPLAY_BOOK2,
|
||||
CUTSCENE_6,
|
||||
IN_SPACE,
|
||||
FIN,
|
||||
THANKS
|
||||
};
|
||||
|
||||
namespace cutscene{
|
||||
@ -101,7 +104,8 @@ namespace cutscene{
|
||||
READY_TO_BOARD,
|
||||
INTRUDERS_DETECTED,
|
||||
A_A_ENCOUNTER,
|
||||
A_A_TRANSFORM
|
||||
A_A_TRANSFORM,
|
||||
ROVER_SAVE,
|
||||
};
|
||||
}
|
||||
|
||||
@ -149,6 +153,7 @@ namespace gameflag{
|
||||
BOARDED_ROCKET,
|
||||
INTRUDER_DETECTED,
|
||||
DEFEATED_Y_Y,
|
||||
DEFEATED_A_A,
|
||||
};
|
||||
}
|
||||
|
||||
@ -666,6 +671,7 @@ public:
|
||||
int LOCKED_IN_DELAY=0;
|
||||
Pixel SHIP_COLOR=WHITE;
|
||||
vf2d BOSS_SIZE={1,1};
|
||||
vf2d CREDITS_SCROLLING_OFFSET={0,12};
|
||||
|
||||
Map*MAP_1=new Map("map1");
|
||||
Map*MAP_2=new Map("map2");
|
||||
@ -987,6 +993,16 @@ public:
|
||||
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.
|
||||
HURRICANE->seedScatter=2;
|
||||
HURRICANE->growSeeds=true;
|
||||
@ -1539,6 +1555,10 @@ public:
|
||||
fadeIn();
|
||||
GAME_STATE=GAMEWORLD;
|
||||
}break;
|
||||
case FIN:{
|
||||
GAME_STATE=THANKS;
|
||||
fadeIn();
|
||||
}break;
|
||||
}
|
||||
switch (CURRENT_CUTSCENE) {
|
||||
case cutscene::TRANSITION_CUTSCENE:{
|
||||
@ -1686,6 +1706,12 @@ public:
|
||||
fadeIn();
|
||||
EndCutscene();
|
||||
}break;
|
||||
case cutscene::ROVER_SAVE:{
|
||||
GAME_STATE=FIN;
|
||||
TIMER=0;
|
||||
fadeIn();
|
||||
EndCutscene();
|
||||
}break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2205,7 +2231,7 @@ public:
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
effectRadius({(int)BATTLE_PLAYER_COORDS.x,(int)BATTLE_PLAYER_COORDS.y},ref,-healRoll,true);
|
||||
} 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&&(
|
||||
@ -2214,7 +2240,7 @@ public:
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
effectRadius({(int)BATTLE_PLAYER_COORDS.x,(int)BATTLE_PLAYER_COORDS.y},ref,true);
|
||||
} 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
|
||||
if (EFFECT_TIMER==ref->effectTime-10){
|
||||
@ -2227,11 +2253,11 @@ public:
|
||||
|
||||
}
|
||||
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 {
|
||||
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 {
|
||||
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) {
|
||||
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr=X_X_UNCHARGED_DECAL;
|
||||
} else
|
||||
@ -2394,6 +2420,7 @@ public:
|
||||
if (allDead) {
|
||||
bool snakeFight=false;
|
||||
bool YYFight=false;
|
||||
bool AAFight=false;
|
||||
if (!GAME_FLAGS[gameflag::LITTLESNAKES_KILLED]) {
|
||||
for (int i=0;i<CURRENT_ENCOUNTER.entities.size();i++) {
|
||||
if (CURRENT_ENCOUNTER.entities[i]->name.compare("Sidewinder")==0) {
|
||||
@ -2424,6 +2451,21 @@ public:
|
||||
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;
|
||||
ENCOUNTERS.erase(ENCOUNTERS.begin()+CURRENT_ENCOUNTER_IND);
|
||||
resetBattleState();
|
||||
@ -2973,8 +3015,8 @@ public:
|
||||
} else
|
||||
if (TIMER<240) {
|
||||
BOSS_SIZE={
|
||||
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),
|
||||
(float)std::clamp(TIMER/240.0+1,1.0,2.0)
|
||||
};
|
||||
SHIP_COLOR=Pixel(255,255,255,(1-(TIMER/240.0))*255);
|
||||
} else {
|
||||
@ -2990,6 +3032,48 @@ public:
|
||||
}
|
||||
}
|
||||
}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) {
|
||||
@ -3111,7 +3195,11 @@ public:
|
||||
hitEdge=true;
|
||||
}
|
||||
if (hitEdge) {
|
||||
starpixels[i]->pos={WIDTH/2,HEIGHT/2-24};
|
||||
if (GAME_FLAGS[gameflag::DEFEATED_A_A]) {
|
||||
starpixels[i]->pos={WIDTH,range(0,HEIGHT)};
|
||||
} else {
|
||||
starpixels[i]->pos={WIDTH/2,HEIGHT/2-24};
|
||||
}
|
||||
}
|
||||
}
|
||||
if (TIMER>300) {
|
||||
@ -3122,6 +3210,12 @@ public:
|
||||
}
|
||||
}
|
||||
}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) {
|
||||
@ -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);
|
||||
}break;
|
||||
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;
|
||||
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;
|
||||
case IN_SPACE:{
|
||||
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);
|
||||
}
|
||||
}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) {
|
||||
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,(float)(HEIGHT-10-GetTextSize("HP:").y)},"HP: "+std::to_string(PLAYER_HP));
|
||||
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) {
|
||||
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 y=-1;y<=1;y++) {
|
||||
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";
|
||||
}
|
||||
}
|
||||
@ -3425,16 +3536,16 @@ public:
|
||||
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,192));
|
||||
}break;
|
||||
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;
|
||||
case cutscene::LAUNCHPAD_PREPARE:{
|
||||
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;
|
||||
case cutscene::READY_TO_BOARD:{
|
||||
FillRectDecal({0,0},{WIDTH,HEIGHT},Pixel(0,0,0,128));
|
||||
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+16},"NO");
|
||||
|
||||
@ -3494,7 +3605,7 @@ public:
|
||||
}
|
||||
}
|
||||
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++) {
|
||||
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.)";
|
||||
|
||||
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"(
|
||||
???
|
||||
RAIN CYCLE COMMENCING)", //0
|
||||
@ -251,6 +279,15 @@ A.A
|
||||
R"(
|
||||
A.A
|
||||
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