Remove the ability to recollect nodes

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 3 years ago
parent 6e36707eda
commit 0343755ad4
  1. 35
      SeasonsOfLoneliness.cpp
  2. BIN
      Seasons_of_Loneliness
  3. 1
      assets/maps/map1
  4. BIN
      assets/petalstorm_icon.png
  5. BIN
      assets/siliconPiece.png
  6. 32
      ideas

@ -385,6 +385,7 @@ public:
Animation CONSUME_SNACK_ANIMATION;
Animation CONSUME_MEAL_ANIMATION;
Animation NADO_ANIMATION;
Animation PETAL_STORM_ANIMATION;
ParticleEffect*HAILSTORM_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{4,4},{-2,0.5},{-0.5,2},Pixel(143, 242, 255,255),Pixel(255,255,255,255),300,Pixel(220, 226, 227,0));
ParticleEffect*HURRICANE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{2,2},{-4,1},{-1,4},Pixel(225, 248, 252,64),Pixel(255,255,255,128),300,Pixel(220, 226, 227,0));
ParticleEffect*METEOR_RAIN_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{3,3},{6,6},{-1,0.2},{-0.2,1},Pixel(46, 31, 31,255),Pixel(43, 31, 46,255),50,Pixel(30, 10, 36,0));
@ -394,6 +395,7 @@ public:
ParticleEffect*SEED_STORM_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{2,2},{-0.5,-1},{0.5,-0.2},Pixel(65, 98, 66,130),Pixel(65, 117, 60,210),100,Pixel(70, 158, 62,0));
ParticleEffect*AVALANCHE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{8,8},{-4,2},{4,4},Pixel(143, 242, 255,255),Pixel(255,255,255,255),300,Pixel(220, 226, 227,0));
ParticleEffect*CONSUME_SNACK_EFF = new ParticleEffect({0,0},{64,64},{64,64},{64,64},{1,1},{2,2},{-0.1,-0.5},{0.1,-0.05},Pixel(255,255,255,130),Pixel(255,255,255,210),30,Pixel(147, 161, 90,0)); //Used for CONSUME_MEAL too.
ParticleEffect*PETAL_STORM_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{3,3},{-4,0.6},{4,2},Pixel(127, 27, 130,130),Pixel(227, 218, 227,240),160,Pixel(147, 161, 90,0));
WEATHER_POWER*HAILSTORM = new WEATHER_POWER("Hailstorm","Causes a flurry of hard cold rocks to be unleashed in target area. 60+30d",&POWER_HAILSTORM_ANIMATION,&POWER_HAILSTORM_ANIMATION,60,30,160,Pixel(72, 160, 212,255),Pixel(93, 161, 163,255),120,HAILSTORM_EFF);
WEATHER_POWER*HURRICANE = new WEATHER_POWER("Hurricane","Causes heavy winds, scattering seeds, heavy rain. 20+10d",&POWER_HURRICANE_ANIMATION,&POWER_HURRICANE_ANIMATION,20,10,200,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,HURRICANE_EFF);
WEATHER_POWER*METEOR_RAIN = new WEATHER_POWER("Meteor Rain","Causes space rocks to fall on target area. 50+50d",&POWER_METEOR_SHOWER_ANIMATION,&POWER_METEOR_SHOWER_ANIMATION,50,50,96,Pixel(96, 86, 153,255),Pixel(170, 103, 201,255),120,METEOR_STORM_EFF);
@ -404,12 +406,14 @@ public:
WEATHER_POWER*AVALANCHE = new WEATHER_POWER("Avalanche","",&POWER_HAILSTORM_ANIMATION,&POWER_HAILSTORM_ANIMATION,15,10,200,Pixel(93, 161, 163,255),Pixel(72, 160, 212,255),120,AVALANCHE_EFF);
WEATHER_POWER*CONSUME_SNACK = new WEATHER_POWER("Snack","Restores 33% health for 5 turns. If battle ends before effect ends, food is not consumed.",&CONSUME_SNACK_ANIMATION,&CONSUME_SNACK_ANIMATION,-1001,1,200,Pixel(147, 173, 66,255),Pixel(255, 188, 3,255),120,CONSUME_SNACK_EFF);
WEATHER_POWER*CONSUME_MEAL = new WEATHER_POWER("Meal","Restores all health. Increases Maximum Health by 5.",&CONSUME_MEAL_ANIMATION,&CONSUME_MEAL_ANIMATION,-1002,1,200,Pixel(147, 173, 66,255),Pixel(255, 188, 3,255),120,CONSUME_SNACK_EFF);
WEATHER_POWER*PETAL_STORM = new WEATHER_POWER("Petal Storm","Places seeds, causes minor healing. 20+20d",&PETAL_STORM_ANIMATION,&PETAL_STORM_ANIMATION,20,20,110,Pixel(189, 132, 189,255),Pixel(235, 75, 235,255),120,PETAL_STORM_EFF);
bool IN_BATTLE_ENCOUNTER = false;
int BATTLE_ENTRY_TIMER = 0;
int EFFECT_TIMER = 0;
#define WEATHER_POWER_COUNT 7 //Number of powers that are in the game. Update storage array accordingly.
#define WEATHER_POWER_COUNT 8 //Number of powers that are in the game. Update storage array accordingly.
WEATHER_POWER*WEATHER_POWERS[WEATHER_POWER_COUNT] = {
HAILSTORM,
PETAL_STORM,
HURRICANE,
METEOR_RAIN,
METEOR_STORM,
@ -442,6 +446,7 @@ public:
std::string TERMINAL_INPUT="";
std::string PLAYER_NAME="...";
std::vector<Zone*>ZONES;
std::vector<vi2d>COLLECTED_ITEMS;
Decal*DOME_DECAL,*FOOD_METER_DECAL,*OXYGEN_METER_DECAL,*PLANT_DECAL,
@ -449,7 +454,7 @@ public:
*WEATHERNODE_EFFECT_DECAL,*POWER_HAILSTORM_DECAL,*POWER_HURRICANE_DECAL,*POWER_METEOR_SHOWER_DECAL,*POWER_METEOR_STORM_DECAL,*POWER_SNOWSTORM_DECAL,
*SPIDEY_DECAL,*TARGETING_CIRCLE,*TARGETING_RANGE_CIRCLE,*HEALTHBAR_DECAL,
*CONSUME_SNACK_DECAL,*CONSUME_MEAL_DECAL,*COMPUTER_DECAL,*BROKEN_ROVER_DECAL,
*NADO_DECAL;
*NADO_DECAL,*SILICON_ROCK_DECAL,*PETAL_STORM_DECAL;
std::map<std::string,ObjectLoadInfo*> BASE_OBJECTS;
std::vector<Encounter> ENCOUNTERS;
Encounter ENCOUNTER_SPIDEY_1;
@ -493,6 +498,8 @@ public:
COMPUTER_DECAL=new Decal(new Sprite("assets/computerSystem.png"));
BROKEN_ROVER_DECAL=new Decal(new Sprite("assets/brokenROVER.png"));
NADO_DECAL=new Decal(new Sprite("assets/nado.png"));
SILICON_ROCK_DECAL=new Decal(new Sprite("assets/siliconPiece.png"));
PETAL_STORM_DECAL=new Decal(new Sprite("assets/petalstorm_icon.png"));
current_playerAnim.spr=PLAYER_DECAL;
playerAnim.spr=PLAYER_DECAL;
@ -601,6 +608,7 @@ public:
BASE_OBJECTS["COMPUTER"]=new ObjectLoadInfo(COMPUTER_DECAL);
BASE_OBJECTS["BROKEN_ROVER"]=new ObjectLoadInfo(BROKEN_ROVER_DECAL);
BASE_OBJECTS["NADO"]=new ObjectLoadInfo(NADO_DECAL,&NADO_ANIMATION,Pixel(153, 137, 75,230));
BASE_OBJECTS["SILICON_PIECE"]=new ObjectLoadInfo(SILICON_ROCK_DECAL);
Zone*SILICON_DEPOSIT_ZONE = new Zone({109,7},{26,9},{0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{3,3},{-30,-3},{30,3},Pixel(133, 98, 66,180),Pixel(220, 120, 90,230),300,Pixel(87, 78, 69,64));
@ -1028,6 +1036,7 @@ public:
int amountGained=rand()%4+2;
HAILSTORM->playerOwnCount+=amountGained;
std::cout<<"Increased HAILSTORM power inventory count by "<<amountGained<<".\n";
COLLECTED_ITEMS.push_back({obj->x,obj->y});
OBJECTS.erase(OBJECTS.begin()+i--);
delete obj;
performCropUpdate(8);
@ -1037,6 +1046,7 @@ public:
int amountGained=rand()%4+2;
HURRICANE->playerOwnCount+=amountGained;
std::cout<<"Increased HURRICANE power inventory count by "<<amountGained<<".\n";
COLLECTED_ITEMS.push_back({obj->x,obj->y});
OBJECTS.erase(OBJECTS.begin()+i--);
delete obj;
performCropUpdate(8);
@ -1046,6 +1056,7 @@ public:
int amountGained=rand()%4+2;
METEOR_RAIN->playerOwnCount+=amountGained;
std::cout<<"Increased METEORSHOWER power inventory count by "<<amountGained<<".\n";
COLLECTED_ITEMS.push_back({obj->x,obj->y});
OBJECTS.erase(OBJECTS.begin()+i--);
delete obj;
performCropUpdate(8);
@ -1055,6 +1066,7 @@ public:
int amountGained=rand()%4+2;
METEOR_STORM->playerOwnCount+=amountGained;
std::cout<<"Increased METEORSTORM power inventory count by "<<amountGained<<".\n";
COLLECTED_ITEMS.push_back({obj->x,obj->y});
OBJECTS.erase(OBJECTS.begin()+i--);
delete obj;
performCropUpdate(8);
@ -1064,6 +1076,7 @@ public:
int amountGained=rand()%4+2;
SNOWSTORM->playerOwnCount+=amountGained;
std::cout<<"Increased SNOWSTORM power inventory count by "<<amountGained<<".\n";
COLLECTED_ITEMS.push_back({obj->x,obj->y});
OBJECTS.erase(OBJECTS.begin()+i--);
delete obj;
performCropUpdate(8);
@ -1860,11 +1873,22 @@ public:
}
y++;
} else {
Object*obj = new Object();
std::stringstream split1(data.substr(0,data.find(';')));
split1>>obj->x;
std::stringstream split2(data.substr(data.find(';')+1,data.find(';',data.find(";")+1)-(data.find(';')+1)));
split2>>obj->y;
int x,y;
split1>>x;
split2>>y;
bool alreadyCollected=false;
for (int i=0;i<COLLECTED_ITEMS.size();i++) {
if (x==COLLECTED_ITEMS[i].x&&y==COLLECTED_ITEMS[i].y) {
alreadyCollected=true;
break;
}
}
if (!alreadyCollected) {
Object*obj = new Object();
obj->x=x;
obj->y=y;
std::string split3 = data.substr(data.find(';',data.find(";")+1)+1,data.length()-(data.find(';',data.find(";")+1)+1));
if (split3.compare("NULL")!=0) {
obj->spr=BASE_OBJECTS[split3]->spr;
@ -1887,6 +1911,7 @@ public:
}
}
}
}
printf("Loaded %dx%d map:\n",MAP_WIDTH,MAP_HEIGHT);
for (int y=0;y<MAP_HEIGHT;y++) {
for (int x=0;x<MAP_WIDTH;x++) {

Binary file not shown.

@ -93,3 +93,4 @@
116;11;NADO
120;11;NADO
122;13;NADO
121;9;SILICON_PIECE

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

32
ideas

@ -81,5 +81,37 @@ a little baffled."
"Winds" - Winds interact with Seeds and Fire.
"Petal Storm" - A petal storm causes Seeds to scatter and minor damage.
""
==========================
After repairing R.O.V.E.Rs identification system one GPS link is reestablished however, weather conditions are not ideal and <PLAYER> will need to rest for the next cycle.
"Well, I guess it's time to take a nap while waiting."
The player is then left with the option of exploring or resting.
Upon entering the dome, the player may interact with the bed to rest.
<Transition to Chapter 2>
cut-out to GPS communication terminal announcing location of R.O.V.E.R link 2.
(Output coordinates with invading boss's tag included.
Ex. X.X+138, X.X+117)
Boss X.X invades dome, causing loud shakes to be heard just outside.
Wakes up Player.
"Of course now would be a GREAT time for an invasion."
<Upon walking outside, the battle begins.>
A card shrine appears in the house, giving you access to Petal Storm.
Once the fight begins a tutorial is initiated for how to use it.
==============
Go the whole game nameless (Do not farm food)

Loading…
Cancel
Save