|
|
@ -21,6 +21,14 @@ enum CUTSCENE{ |
|
|
|
CUTSCENE_4, |
|
|
|
CUTSCENE_4, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum WEATHER_POWER{ |
|
|
|
|
|
|
|
HAILSTORM, |
|
|
|
|
|
|
|
HURRICANE, |
|
|
|
|
|
|
|
METEOR_SHOWER, |
|
|
|
|
|
|
|
METEOR_STORM, |
|
|
|
|
|
|
|
SNOW_STORM |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
#define WIDTH 256 |
|
|
|
#define WIDTH 256 |
|
|
|
#define HEIGHT 224 |
|
|
|
#define HEIGHT 224 |
|
|
|
#define ALPHA_SCREEN1 128 |
|
|
|
#define ALPHA_SCREEN1 128 |
|
|
@ -140,6 +148,20 @@ public: |
|
|
|
Animation POWER_SNOWSTORM_ANIMATION; |
|
|
|
Animation POWER_SNOWSTORM_ANIMATION; |
|
|
|
std::vector<Entity> entityList; |
|
|
|
std::vector<Entity> entityList; |
|
|
|
bool IN_BATTLE_ENCOUNTER = false; |
|
|
|
bool IN_BATTLE_ENCOUNTER = false; |
|
|
|
|
|
|
|
int WEATHER_POWERS[15] = { |
|
|
|
|
|
|
|
3, |
|
|
|
|
|
|
|
1, |
|
|
|
|
|
|
|
5, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0, |
|
|
|
|
|
|
|
0,0,0}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
olc::Decal*DOME_DECAL,*FOOD_METER_DECAL,*OXYGEN_METER_DECAL,*PLANT_DECAL, |
|
|
|
olc::Decal*DOME_DECAL,*FOOD_METER_DECAL,*OXYGEN_METER_DECAL,*PLANT_DECAL, |
|
|
@ -405,8 +427,8 @@ public: |
|
|
|
bool changed=false; |
|
|
|
bool changed=false; |
|
|
|
if (GetKey(olc::D).bHeld||GetKey(olc::RIGHT).bHeld||GetKey(olc::NP6).bHeld) { |
|
|
|
if (GetKey(olc::D).bHeld||GetKey(olc::RIGHT).bHeld||GetKey(olc::NP6).bHeld) { |
|
|
|
PLAYER_COORDS[0]=clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
PLAYER_COORDS[0]=clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
ConsoleClear(); |
|
|
|
//ConsoleClear();
|
|
|
|
cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")"; |
|
|
|
//cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")";
|
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkRight) { |
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkRight) { |
|
|
|
changeAnimation(playerAnimWalkRight); |
|
|
|
changeAnimation(playerAnimWalkRight); |
|
|
|
changed=true; |
|
|
|
changed=true; |
|
|
@ -414,8 +436,8 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(olc::A).bHeld||GetKey(olc::LEFT).bHeld||GetKey(olc::NP4).bHeld) { |
|
|
|
if (GetKey(olc::A).bHeld||GetKey(olc::LEFT).bHeld||GetKey(olc::NP4).bHeld) { |
|
|
|
PLAYER_COORDS[0]=clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
PLAYER_COORDS[0]=clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH); |
|
|
|
ConsoleClear(); |
|
|
|
//ConsoleClear();
|
|
|
|
cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")"; |
|
|
|
//cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")";
|
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkLeft) { |
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkLeft) { |
|
|
|
changeAnimation(playerAnimWalkLeft); |
|
|
|
changeAnimation(playerAnimWalkLeft); |
|
|
|
changed=true; |
|
|
|
changed=true; |
|
|
@ -423,8 +445,8 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(olc::W).bHeld||GetKey(olc::UP).bHeld||GetKey(olc::NP8).bHeld) { |
|
|
|
if (GetKey(olc::W).bHeld||GetKey(olc::UP).bHeld||GetKey(olc::NP8).bHeld) { |
|
|
|
PLAYER_COORDS[1]=clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
PLAYER_COORDS[1]=clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
ConsoleClear(); |
|
|
|
//ConsoleClear();
|
|
|
|
cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")"; |
|
|
|
//cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")";
|
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkUp) { |
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkUp) { |
|
|
|
changeAnimation(playerAnimWalkUp); |
|
|
|
changeAnimation(playerAnimWalkUp); |
|
|
|
changed=true; |
|
|
|
changed=true; |
|
|
@ -432,8 +454,8 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
if (GetKey(olc::S).bHeld||GetKey(olc::DOWN).bHeld||GetKey(olc::NP5).bHeld||GetKey(olc::NP2).bHeld) { |
|
|
|
if (GetKey(olc::S).bHeld||GetKey(olc::DOWN).bHeld||GetKey(olc::NP5).bHeld||GetKey(olc::NP2).bHeld) { |
|
|
|
PLAYER_COORDS[1]=clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
PLAYER_COORDS[1]=clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT); |
|
|
|
ConsoleClear(); |
|
|
|
//ConsoleClear();
|
|
|
|
cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")"; |
|
|
|
//cout<<"("<<PLAYER_COORDS[0]<<","<<PLAYER_COORDS[1]<<+")";
|
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkDown) { |
|
|
|
if (!changed&&¤t_playerAnim!=&playerAnimWalkDown) { |
|
|
|
changeAnimation(playerAnimWalkDown); |
|
|
|
changeAnimation(playerAnimWalkDown); |
|
|
|
changed=true; |
|
|
|
changed=true; |
|
|
@ -441,6 +463,15 @@ public: |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i=0;i<OBJECTS.size();i++) { |
|
|
|
|
|
|
|
Object obj = OBJECTS.at(i); |
|
|
|
|
|
|
|
if (obj.name.compare("HAILSTORM_NODE")==0&&collidesWithPlayer(obj)) { |
|
|
|
|
|
|
|
int amountGained=rand()%4+2; |
|
|
|
|
|
|
|
cout<<"Increased HAILSTORM power inventory count by "<<amountGained<<".\n"; |
|
|
|
|
|
|
|
OBJECTS.erase(OBJECTS.begin()+i--); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
switch (CURRENT_CUTSCENE) { |
|
|
|
switch (CURRENT_CUTSCENE) { |
|
|
|
case CUTSCENE_4:{ |
|
|
|
case CUTSCENE_4:{ |
|
|
|
if (!messageBoxVisible) { |
|
|
|
if (!messageBoxVisible) { |
|
|
@ -774,6 +805,16 @@ public: |
|
|
|
current_playerAnim=anim; |
|
|
|
current_playerAnim=anim; |
|
|
|
current_playerAnim.frame=0; |
|
|
|
current_playerAnim.frame=0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool collidesWithPlayer(Object obj) { |
|
|
|
|
|
|
|
if (obj.hasAnim) { |
|
|
|
|
|
|
|
return PLAYER_COORDS[0]>=obj.x&&PLAYER_COORDS[0]<=obj.x+obj.anim->width&& |
|
|
|
|
|
|
|
PLAYER_COORDS[1]>=obj.y&&PLAYER_COORDS[1]<=obj.y+obj.anim->height; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return PLAYER_COORDS[0]>=obj.x&&PLAYER_COORDS[0]<=obj.x+obj.spr->sprite->width&& |
|
|
|
|
|
|
|
PLAYER_COORDS[1]>=obj.y&&PLAYER_COORDS[1]<=obj.y+obj.spr->sprite->height; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|