Pre-release build finished

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent d197c14077
commit 4e5a0eef43
  1. 147
      SeasonsOfLoneliness.cpp
  2. BIN
      Seasons_of_Loneliness
  3. BIN
      Seasons_of_Loneliness.data
  4. 2
      Seasons_of_Loneliness.js
  5. BIN
      Seasons_of_Loneliness.wasm
  6. 37
      data.h

@ -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.

@ -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…
Cancel
Save